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; }

Rispondi quotando
