probleme insertion liste chainee
	
	
		Bonjour,
j'ai un petit probleme pour une insertion dans une liste chainee je veux faire un tri par ordre alphabetique. quand je  veux l'afficher je n'ai pas le bon resultat.
j'ai l'impression que ca bloque quand je veux inserer en debut de liste.
voici la fonction
edit :  structure
	Code:
	
1 2 3 4 5
   | typedef struct     s_list
{
  void             *data;
  struct s_list    *next;
} t_list; | 
 
	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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
   |  
 
 
int     my_put_in_list_last (t_list **list, char *val)
{
 
  t_list *element;
  t_list *prev;
  t_list *toput;
 
element = malloc(sizeof(*element));
  if (element == 0)
    return (0);
  toput = malloc(sizeof(*toput));
  if (toput == 0)
    return (0);
  toput->data = val;
     if (*list != NULL)
       {
      element = *list;
      prev = NULL;
      while(element != NULL)
        {
          if(strcmp(element->data,val) == -1)
            {
              if(prev != NULL)
                prev->next = toput;
              else
                {
                  *list = toput;
                }
              toput->next = element;
              element = element->next;
            }
          else
            {
              prev = element;
              element = element->next;
            }
        }
       }
 
     if (*list == NULL)
       {
         element->data = val;
         element->next = *list;
         *list = element;
       }
 
     return (0);
} | 
 ca fais plusieurs heures que je bloque sur ca si c'est possible d'avoir un coup de main ca serait cool