Bonjour,
Cela fait maintenant une semaine que je me prends la tête sur ce probleme et je ne comprends toujours pas ! Explications:
Je créé un liste doublement chainée avec comme structure:
Puis j'ajoute mes données dedans avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 typedef struct s_env { char *value; struct s_env *next; struct s_env *previous; } t_env; typedef struct s_limit_env { t_env *start; t_env *end; } t_limit_env;
Jusque là tout va bien !!
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 void create_list_env(t_limit_env *limit_env, char *value) { t_env *env; env = malloc(sizeof(*env)); if (!env) gest_error(4); env->value = value; env->next = NULL; env->previous = limit_env->end; if (limit_env->end) limit_env->end->next = env; else limit_env->start = env; limit_env->end = env; }
Ensuite vient ma fonction d'affichage:
Par contre ici il m'affiche n'importe quoi !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void aff_env(t_limit_env *limit_env) { t_env *env; env = limit_env->start; while (env) { my_putstr(env->value); my_putchar('\n'); env = env->next; } }
Par exemple je créé une liste de 3 éléments avec en value pour la liste 1 "TOTO", la liste 2 "TATA" et la liste 3 "TUTU",
à l'affichage il m'affichera 3 fois "TUTU" !! Ou sont passé "TOTO" et "TATA" ????
"value" est un char* mais lorsque je le met en int, et que je met des nombres à la place des "TOTO", "TATA", "TUTU" ca marche normalement !!
Ma question est: Comment la faire marcher avec des char* ??
Merci beaucoup beaucoup d'avance,
Hugo
Partager