Passage d'arguments à un thread
Bonjour,
j'ai écrit le petit code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
struct MyArgs
{
int idcur;
int pagecur;
};
void * v_page(void *p)
{
struct MyArgs *args = p;
fprintf(fp,"aaaaaaaaaaaaa\n");
int idp = args->pagecur;
fprintf(fp,"aaaaaaaaaaaaa\n");
int id = args->idcur;
fprintf(fp,"pagecur : %d\n",idp);
fprintf(fp,"idcur : %d\n",id);
}
void * start_site(int id)
{
struct MyArgs args;
int i = 0;
args.idcur = id;
args.pagecur = i;
if(pthread_create(&threadss[id].thread, NULL, v_page, &args))
{
perror("pthread_create");
exit(EXIT_FAILURE);
}
return NULL;
} |
Ce code marche impeccablement sous linux, compilation sans erreurs et warnings et execution comme je l'attend. Sous windows (dev-cpp), aucunes erreurs à la compilation mais à l'execution j'ai le droit à un segmentation fault.
Apparemment il n'arrive pas à acceder au champs de ma structure.
Vu que je ne maitrise pas bien le debugger, j'ai mis des fprintf pour voir ou ca planté et voila ce que m'affiche le programme avant de planter :
Voila je ne sais absolument pas comment résoudre ce problème.
A noter que c'est une application GTK.
Merci d'avance si vous avez des idées.