Bonjour tout le monde,
Je voudrais supprimer le dernier noeud d'une liste simplement chainée
voici le code:

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
liste delete_last(liste I)
{
	liste p=I;
	liste l=NULL;
	liste t=NULL;
	while(p->next->next!=NULL)
	{
	p=p->next;
	}
	l=p;
	t=p->next;
	l->next=NULL;
	free(t);
 
 
return I;	
}
Le problème c'est que lors de l'exécution il m'affiche une boite: debug error

damage: after normal block (#46) at (0x00431E80)
à ce qu'il parait il y a un problème dans le free parceque quand j'ai supprimé la ligne de free ça a marché!!
Je ne sais pas quel est le problème
aidez moi SVP
Merci pour votre aide