bonjour,
J'essaie de faire une liste doublement chainée circulaire mais sa seg fault dès que je l'affiché..
Donc, ma structure est celle ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
typedef struct          s_arguments
{
  char                  *str;
  int                   select;
  struct s_arguments    *nxt;
  struct s_arguments    *prv;
}                       t_arguments;
et le code l'utilisant est celui ci:
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
t_arguments     *add_elem(t_arguments *first, t_arguments *cur, char *str)
{
  t_arguments   *new_elem;
 
  new_elem = my_malloc(sizeof(*new_elem));
  new_elem->str = my_strdup(str);
  new_elem->select = 0;
  new_elem->prv = first;
  new_elem->nxt = cur;
  return (new_elem);
}
 
t_arguments     *sort_in_list(int ac, char **av)
{
  int           i;
  t_arguments   *my_arg;
  t_arguments   *new_elem;
 
  i = 1;
  my_arg = 0;
  new_elem = my_arg;
  while (i < ac)
    {
      new_elem = add_elem(my_arg, new_elem, av[i]);
	new_elem = new_elem->nxt;
      i++;
    }
  my_putstr(my_arg->str);
  return (my_arg);
}