Bonjour a vous :-)
J'ai un soucis de seg fault... Je vous montre:
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
 
t_rep   *trie_ins(t_rep *ins, t_rep *ls, t_rep *cur, t_rep *prev)
{
  if(my_strcmp(cur->str, ins->str) == -1)
    {
      ins->nxt = cur;
      if (prev != NULL)
        prev->nxt = ins;
      return ((ls != NULL) ? ls : ins); /* debut de la sous liste triee*/
    }
  else if (cur->nxt != NULL)
    {
      return ((ls != NULL) ? trie_ins(ins, ls, cur->nxt, cur) : trie_ins(ins, cur, cur->nxt, cur));
    }
  /*envoie de ls sinon cur si pas de ls*/
  else /*on le met a la fin*/
    {
      cur->nxt = ins;
      ins->nxt = NULL;
      return ((ls != NULL) ? ls : cur); /* debut de la ls*/
    }
}
 
t_rep   *triInsert(t_rep *ls)
{
  if (ls->nxt != NULL)
      return (trie_ins(ls, NULL, triInsert(ls->nxt), NULL));
  else
    return (ls);
  /* Si ls->nxt == NULL c ke fo trier le last elem, cad le first kje ve inserer dans ls*/
  /* Sinan, jinsere l'elem dans la list formee par le tri des elem qui suivent*/
  /* Jstart dc a classer les elements en partant du last de la liste originelle*/
}
La structure t_rep est juste une liste chainee avec une chaine de caractere est un pointeur sur le suivant.

Mon soucis: je n'arrive pas a prendre le 1er element de ma liste.. Juste le dernier.
Dans la fonction trie_ins le compilo ne connais jamais l'element courant alors que je lui envois bien le 1er de ma liste avec: triInser(ls->nxt)

Voila... J'espere avoir un peu d'aide :-)