Bonjour
 
J'ai un probleme dans un programme écrit en C
 
J'ai dans mon main un pointeur (c'est une file)
Dans ce meme main je cré un thread en passant en parametre le pointeur (apres l'avoir alloué)
Dans le thread j'ajoute des elements a la file (ils sont bien ajouté dans le thread)
mais ensuite dans mon main la file est vide 
 
Voici une partie des sources, vous comprendrez mieux 
 
Code :
 - typedef struct Element
 - {
 - char *valeur;
 - struct Element *suiv;
 - }element ;
 - typedef struct Fifo
 - {
 - element *debut;
 - } fifo;
 
  | 
 
 
Code :
 - fifo *sample;
 - sample=(fifo*)malloc(sizeof(fifo));
 - init_fifo(sample); //met sample->debut a NULL
 
  | 
 
Code :
 - pthread_t adr_thread;
 - if(pthread_create(&adr_thread,NULL,record,(void *)sample) !=0)
 - {
 - 	printf("Erreur de création de thread\n" );
 - 	exit(-1);
 - }
 - sleep(3);
 - if(pthread_cancel(adr_thread)==0)
 - 	printf("Thread record arrété\n" );
 - printf("%s\n",sample->debut); //cela m'affiche "NULL"
 
  | 
 
 
Je precise bien que le ppointeur de nom "debut" est modifié dans le thread et donc n'est plus NULL, ceci ayant bien lieu avant que "NULL" ne soit affiché
 
Message édité par ffomnislash le 26-11-2004 à 13:23:44