Salve,

ho queste 2 classi:

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;
	}
  }
};
Il problema sorge quando cerco di eseguire questo codice:
codice:
Lista * L = new Lista;
Partita P;
L.inserisciPartita ( P ); // inserisco una Partita nella Lista
delete L;
E' proprio "delete L;" che mi fa crashare il programma.
Ma i costruttori son scritti giusti?
Il risultato che mi stampa è:
distruttore LISTA
distruttore PARTITA
e crasha.
cosa c'è che non va nei distruttori?

Ah, se ometto quel "delete L;" il programma termina correttamente.


Grazie