Ciao a tutti, ho un problema con la procedura che cancella un elemento da una lista...
la funzione scritta da me è la seguente:
void delete(item *l, int input){
item *aux, *corr;
if(l==NULL) return;
aux=l;
if(aux->key==input){
l=l->next;
free(aux);
}
corr=l->next;
while(corr!=NULL){
if(corr->key==input){
aux->next=corr->next;
corr->next=NULL;
free(corr);
}
else{
aux=aux->next;
corr=corr->next;
}
}
}
la procedura va funziona benissimo in tutti i casi, tranne quando l'elemento da eliminare è il primo della lista...non capisco il problema....
ho provato a fare delle stampe di debug e ho notato che ogni volta che cancello il primo elemento di una lista, se successivamente stampo la lista in prima posizione mi appare uno zero..
potete aiutarmi?