эй, попробуйте pthread_join( thread[j], NULL);
я думаю, что проблема с типами. Я проверил документы:
int pthread_join(pthread_t thread, void **value_ptr);
и thread
- это p_thread*
, а thread[j]
- это p_thread
, тогда как &thread[j]
- это p_thread*
, что недопустимо. Возможно, произошла внутренняя ошибка.
Редактировать : Да, я очень уверен в этом, pthread_t
в основном int
, поэтому pthread_t*
принят, это просто недопустимый дескриптор потока, поэтому pthread_join
завершается с ошибкой.