In C++ quando cancello un elemento di una lista che è stato allocato dinamicamente in questo modo :
lista p=testa;
for(; p!=NULL; p=p->pun)
prec->pun=NULL; // trovo l'ultimo elemento
delete p;
if (p==testa)
testa=NULL;
else
prec->pun=NULL;
Se cancello l'elemento e quindi l'area di memoria puntata da p diventa inutilizzabile, il valore contenuto in p ci rimane oppure viene cancellato? La cosa più corretta sarebbe fare il test e poi cancellare, ma è solo una curiosità.