liste welche Adressen auf Objekte enthält säubern und die Objekte deleten
-
Hallo!
ich habe eine stl-list, wo in einer Funktion immer die Adressen von per new erstellte Objekte eingefügt werden (push_back).
Mit einer anderen Funktion möchte ich diese Objekte löschen, allerdings stürzt mein Programm immer ab, hier der Code:for(list<Object*>::iterator itP = ObjectListe.begin(); it!=ObjectListe.end(); ++it) { delete (*it); // Absturz ObjectListe.pop_front(); }
Ich finde den Fehler nicht
-
Lass mal das
ObjectListe.pop_front();
weg und mach nach der Schleife ein
ObjectListe.clear();
Ich glaube bei pop_front werden die aktuellen Iteratoren ungültig, wodurch du undefiniertes Verhalten erzeugst, wenn du deinen Iterator weiter erhöhst!
-
Ja, dass war der Fehler, danke!