>>646
pthreadが許可する関数エントリはvoid*を受け取りvoid*を返すように決められているから、
funcをキャストするなら(void *)ではなく(void *(*)(void *))にキャストする必要がある。

実際のところ、 void *func(void *arg) としておいて、内部で
MyClass *myclass = (MyClass *)arg;
とするのがいいんじゃまいか。

そうすればpthread_createの無駄なキャストが消えて
pthread_create(&t[1], NULL, func, &myclass[i]);
と出来るかと