Récupérer un noeud d'une liste chainée
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:
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:
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