I see. What I was worried about was a version of the code you didn't actually write (casting the ptrdiff_t result to a [u]intptr_t, not casting the pointers first).
#import <pthread.h>
#import <stdlib.h>
// Globals
pthread_mutex_t *gLck;
int gSum;
int main (int argc, const char * argv[])
{
pthread_t *tFoo, *tBar;
int tErr, tArgF, tArgB;
// create the mutex construct
tErr = pthread_mutex_init(gLck); memo function-to-memoize