c массив сквозной передачи типа int

Я передаю массив типа int pthread_create и получив ошибку:

histogram.c:138:3: warning: passing argument 3 of 'pthread_create' from incompatible pointer type [enabled by default] expected 'void * (*)(void *)' but argument is of type 'void * (*)(int *)' void *output_results(); pthread_create(&t2, NULL, output_results, (void *)bins); void *output_results(int *bins) { some code } 

Должно быть

 void *output_results(void*); pthread_create(&t2, NULL, output_results, (void *)bins); void *output_results(void *data) { int *bins = (int*)data; // some code } 

Сообщение об ошибке довольно ясно: функция должна быть типа void * (*)(void *) а не void * (*)(int *) (плюс ваш прототип для output_results не соответствовал его определению).

Ошибка компиляции заключается в том, что pthread_create ожидает void *output_results(void *bins) , но у вас есть int *bins .

Кроме того, объявление результатов output_results которые вы используете, не соответствует его определению.