Bonjour j'essaye de faire un programme qui utilise les listes mais voila un problème ce pose je n'arrive pas supprimer une valeur précise dans la liste voici mon code :
Code C : 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
//la définition de la liste 
struct cellule
{
    int valeur;
    struct cellule * suivant;
};
typedef struct cellule Cellule;
typedef Cellule * Liste;
 
 
 
fonctionListe Suppr_val(int val, Liste l)  
//val est la valeur a supprimer et l la liste qui doit contenir cette valeur
{
    Liste p=l->suivant,prec=l;
    if (Liste_Vide(l))
      l=NULL;
    else
	{
	  if (l->valeur==val)
	    {
	      prec=l;
	      l=l->suivant;
	      free(prec);
	    }
	  else
	    {
	      while (p)
	      {
	          if (p->valeur==val)
                break;
              else
              {
                  prec=p;
                  p=p->suivant;
		      }
              if (p!=NULL)
		      {
                prec->suivant=p->suivant;
                free(p);
                p=NULL;
		      }
	      }
	    }
	}
      return p;
}

Pouvez vous m'aider ou se trouve mon erreur parce que là je suis complétement perdu