Rieccomi...
Ho il seguente problema: devo eliminare di volta in volta un elemento della lista inserito in precendenza, liberando la memeria con una free..
Ho sviluppato il seguente codice:
Brevemente...le dbprint sono due funzioni che printano il contenuto della lista prima e dopo.codice:void pop(M_player *ptop, F_player *B){ dbPRINT(ptop,B); M_player *ptmp=ptop,*A=ptop,*ptFREE=ptop; int tmp; scanf("%d",&tmp); while (ptFREE->id!=tmp){ ptmp=ptFREE; ptFREE=ptmp->next; } ptmp->next=ptFREE->next; free (ptFREE); dbPRINT(A,B); }
Il codice implementato funziona, in quanto effettivamente elimina correttamente gli elementi che acquisisco da tastiera con la scanf.
IL BUG si verifica quando si chiede di eliminare il primo elemento della lista...NON LO ELIMINA.
IDEE??? please?

Rispondi quotando