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é :

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;
}
J'ai un fichier .h.

Voici le main :

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);
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.

Merci