Bonjour à tous,
voilà je me creuse depuis un moment deja sur une erreur de segmentation que je ne comprend pas.

En gros, j'ai un fichier que je parse, je recupere les données dans des variables, et je veux les stocker dans une structure. Ma structure est celle-là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
struct process{
 
	int pid;
	int pidPere;
	char *user;
	char *nomCommande;
};
 
typedef struct process PROCESS;
Et mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
GNode *creeArbre(char *Chaine){
 
	PROCESS *pProc;
	pProc = (PROCESS *)malloc(sizeof(PROCESS));
	GNode *noeud;
	GNode *racine;
 
        FILE *fp = NULL;
 
	if((fp=fopen(Chaine,"r"))==0){
   		menu(); /*retour menu*/
	}
 
	fgets(ligne,LONG,fp);/*up la premiere ligne*/
 
	while (fgets(ligne,LONG,fp) != 0){
		sscanf(ligne,"%s %d %d %d %s %s %s %s", pUser, &pid, &ppid, &c, stime, tty, time, pNomCommande);
		pProc->user = pUser;	 /*C'est là que ca merde*/
		pProc->pid = pid;
		pProc->pidPere = ppid;
		pProc->nomCommande = pNomCommande; 
		g_node_insert( g_node_find_pid(racine,pProc->pidPere),-1,g_node_new(pProc));*/
	}
Mon sscanf me recupere bien toutes les données, mais l'affectation dans le champ de la structure loupe. Le plus étrange, c'est que si je fais l'affectation avant la boucle while, elle fonctionne, mais si je l'a fait dedans ou apres, non.

Alors je ne sais pas si ca peut venir du sscanf, parce que quand j'affiche ce que j'ai recuperé, c'est bon...