scusate ma ho ancora qualche dubbio sulla deallocazione...
in questa fuzione per l'estrazione di un nodo da una lista viene prima deallocato p e poi continua ad essere utilizzato...
come fa se è stato deallocato?

codice:
void EstrazioneC(void)
{
  if (ListaVuota() == true)
    {
       p = tdl;        // p puntatore di comodo per scorrere la lista
                       // è il puntatore del nodo attuale
       pprec = NULL;  // puntatore del nodo precedente a quello
                      // attuale puntato dal puntatore p
       
     // il ciclo serve per scorrere l'intera lista ed arrivare all'ultimo nodo
     // conservando il puntatore del nodo precedente, in cui si deve 
     // inserire la costante NULL nella sua parte puntatore
       while (p->psucc != NULL)
           { 
             pprec = p;       // si salva il puntatore corrente
             p = p->psucc;    // per scorrere la lista
           }            
       
       cout << " Nodo estratto --->  " << p->inf<<endl;
       delete p;
       // se la lista è costituita da un solo nodo si elimina l'intera lista
       if (p == tdl)
           {tdl = NULL;}
       else
           {pprec->psucc = NULL;}
       
    }
  return;  
}