c pthread tableau de passage de type int

Je passe un tableau de type int pthread_create et j’obtiens une erreur:

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 } 

Devrait être

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

Le message d’erreur est assez clair: la fonction doit être de type void * (*)(void *) et non void * (*)(int *) (plus votre prototype pour output_results ne correspond pas à sa définition).

L’erreur de compilation est due au fait que pthread_create attend void *output_results(void *bins) , mais vous avez int *bins .

De plus, la déclaration de output_results que vous utilisez ne correspond pas à sa définition.