//insertion d'une cellule en debut de liste
list insertList(list l,int elt)
{
cell *c;
c=(cell*)malloc(sizeof(cell));
if (c==NULL)return NULL;
c->elt=elt;
c->next=l;
return c;//return le nouveau premier element
}
//insertion d'une cellule en fin de liste
list insertfinlist(list l, int elt)
{
list tmp=NULL, first=l;
cell *f;
f=(cell*)malloc(sizeof(cell));
// printf("bonjour1\n");
if(f==NULL)return NULL;
// printf("bonjouri2\n");
f->elt=elt;
f->next=NULL;
// printf("bonjour6\n");
while(l!=NULL)
{tmp=l;
l=l->next;
// printf("bonjouri3\n");
}
if(tmp!=NULL)
tmp->next=f;
return first;
}
void delete(list l)//supression de la liste
{
list t;//valeur temporaire
while(l!=NULL)
{
t=l;//mise en memoire de la premiere valeur
l=l->next;//passage a la valeur d'apres
free(t);//supression de la permiere valeur
}
}
//creation d'une liste circulaire
void circ(list l)
{
list t=NULL;
list first=l;
while(l!=NULL)
{
t=l;
l=l->next;
}
if(t!=NULL)
t->next=first;
}
int main()
{
cell *l=NULL;//initialisation de lit l (list l<-> cell *l)
l=insertList(l,12);//l devient le nouveau premier
l=insertfinlist(l,14);
print(l);//affichage de la liste !!!!!!!!!!!
delete(l);
// circ(l);
printf("ca marche\n");
print(l);
return(0);
}
voici les erreurs valgrind que j'ai: et je ne vois pas d'ou ca peux venir
list :
12
14
lolca marche
list :
20438==
20438== Invalid read of size 4
20438== at 0x8048433: print (liste-1.c:27)
20438== by 0x8048614: main (liste-1.c:116)
20438== Address 0x1BA43028 is 0 bytes inside a block of size 8 free'd
20438== at 0x1B90144F: free (vg_replace_malloc.c:235)
20438== by 0x804854E: delete (liste-1.c:88)
20438== by 0x80485F6: main (liste-1.c:113)
12
20438==
20438== Invalid read of size 4
20438== at 0x8048449: print (liste-1.c:28)
20438== by 0x8048614: main (liste-1.c:116)
20438== Address 0x1BA4302C is 4 bytes inside a block of size 8 free'd
20438== at 0x1B90144F: free (vg_replace_malloc.c:235)
20438== by 0x804854E: delete (liste-1.c:88)
20438== by 0x80485F6: main (liste-1.c:113)
14