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:

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;
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
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;
}
Jusque là tout va bien !!

Ensuite vient ma fonction d'affichage:

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 contre ici il m'affiche n'importe quoi !!
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