Salve,
ho queste 2 classi:
Il problema sorge quando cerco di eseguire questo codice:codice:// 1° classe class Partita { char * SquadraA; char * SquadraB; public: [...] ~Partita ( ) { cout << "distruttore PARTITA" << endl; delete [] SquadraA; delete [] SquadraB; }; }; // 2° classe class Lista { Nodo * testa; public: [...] ~Lista ( ) { Nodo * aux = testa; while ( testa ) { cout << "distruttore LISTA" << endl; aux = testa; testa = testa->Nptr; // puntatore al prossimo Nodo delete aux; } } };
E' proprio "delete L;" che mi fa crashare il programma.codice:Lista * L = new Lista; Partita P; L.inserisciPartita ( P ); // inserisco una Partita nella Lista delete L;
Ma i costruttori son scritti giusti?
Il risultato che mi stampa è:
e crasha.distruttore LISTA
distruttore PARTITA
cosa c'è che non va nei distruttori?
Ah, se ometto quel "delete L;" il programma termina correttamente.
Grazie
![]()

Rispondi quotando
