Salut
le probleme est que les threads prennent les fonctions sans parametres (void* mafonction(void * data) ;
La fonction n'est pas sans paramètre. Il y en a justement un, et il est de type "pointeur sur void" : http://pubs.opengroup.org/onlinepubs...ad_create.html
Si tu veux passer un objet de type int à la fonction qui tournera dans ton nouveau thread, il faut donner son adresse :
pthread_create(&thread, NULL, emission, &objet);
Et adapter (de plus, la fonction doit renvoyer un pointeur sur void) :
1 2 3 4 5
| void * emission(void * adresse_objet)
{
int objet = * (int*) adresse_objet;
...
} |
Deux choses, au passage :
Il ne faut jamais faire de fflush sur stdin.
gets est une fonction très dangereuse : risque de dépassement de tampon et exécution de code arbitraire. Il faut utiliser fgets à la place.
Partager