se vuoi deallocare tutta una lista linkata devi dealocare anche tutti gli elementi che seguono l'elemento, nel tuo caso p_temp.Originariamente inviato da Monaco88
I
- cioe' l'if che cosa verifica?codice:if ( p_temp ) delete p_temp;
Per farlo prima verifichi che questo elemento esista (non sia cioè NULL, che rappresenta normalmente la fine della lista) e se l'elemento esiste alloro deallochi la sua memoria. Questo si propaga ricorsivamente su tutta la lista, fino alla fine.
if ( p_temp ) verifica appunto che p_temp non sia NULL in quanto in C tutto quello che non è NULL (cioè zero) è true, se lo ritieni più chiaro lo puoi scrivere come if ( p_temp != NULL ) .. .
ciao
sergio

Rispondi quotando