HEAP Problem nach delete..



  • Rufe im mehre verschachtelte Destruktoren auf (Vererbung) dabwei werden mehre tausende Objekte (ohne) Fehler gelöscht...

    sobal alles Objekt bzw. alle Konsturkotrne durchlaufen sind kom aber folgender Fehelrmeldugn:

    HEAP[Simulator.exe]: Invalid Address specified to RtlValidateHeap( 2f0000, 2f8f58 )
    Unhandled exception at 0x7789193c in Simulator.exe: User breakpoint.

    was hat dies zu bedeuten?

    Peoblem tritt auch auf wenn ich nur wenige Objekt erzeuge.. irgndwie werden nich alle Daten/Objekte ordnugnsmeäss geköscht odeR? wie kann ich das überprüfen?



  • Nachdem du so viele Fragen zur Vererbung gestellt hast - löschst du abgeleitete Klassen über Basis-Zeiger?

    Base* ptr = new Derived;
    ...
    delete ptr;
    

    Wenn ja, spendiere der Basisklasse bitte einen virtuellen Destruktor.



  • Ja das problem war, das ich nich wusste das wenn ich den Destruktor einer Abgeleiteten klasse automatishc den destruktor der Basisklasse auruft... ich hab ihn also 2 mal aufegrufen das zu dem problem führte...

    ~B(){
    .
    .
    .
     A::~A(); // <--- (Extra Aufrufe des destruktor der Basisklasse)
    }
    

Anmelden zum Antworten