Bonjour,
Je suis en train d'écrire un petit programme et je suis bloqué concernant la valeur de retour d'un noeud.
Le noeud est correctement crée et les information y sont correctement stockées, mais après l'appel de la fonction, il y'a des caractères aléatoires qui s'ajoutent à fin. Voici le bout de code concerné :
J'ai un fichier .h.
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
25
26
27
28
29
30
31
32
33
34
35 UnNoeud creerListe(FILE* fichier) { char ligne[121] = {0}; UnNoeud tete = NULL; char* info[121] = {0}; char separateurs[] = "[]"; char* element; int j = 0; int k = 0; tete = malloc(sizeof(UnNoeud)); fgets(ligne, 121, fichier); for (element = strtok(ligne, separateurs); element; element = strtok(NULL, separateurs)) { if (strcmp(element, " ") != 0 && strcmp(element, "\n") != 0) { info[j] = element; j++; } } k = j; tete -> valeur = info[0]; tete -> tableau = malloc(k); for (j = 1; j < k; j++) { tete -> tableau[j - 1] = malloc(strlen(info[j])); tete -> tableau[j - 1] = info[j]; printf("%s ", (char*) tete -> tableau[j - 1]); } return tete; }
Voici le main :
Par exemple s'il y'a l'information a b c qui est entrée, c'est a b c et des caractères aléatoires qui s'affichent quand je fais un printf de liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 FILE* fichier = NULL; UnNoeud liste = NULL; fichier = ouvrirFichier(argv[1]); (fgets(ligne, 121, fichier)); liste = creerListe(fichier);
Merci
Partager