Memory leaks mit operator new
-
Hallo!
Zuerst ein code-sample:
constructor: vector <Class1*> vec; vec.push_back(new Class(1); destructor: delete vec[0]; vec.pop_back();Das Beispiel soll nur demonstrieren, was ich in etwa mache. Jetzt sagt bei mir BoundsChecker folgendes:
Memory block at address 0x03174428 (8) leaked, allocated by global_operator_new; referenced by leaked block at address 0x0317A0A0.
Wie kann ich dieses Problem beheben?
-
pixsta schrieb:
Das Beispiel soll nur demonstrieren, was ich in etwa mache.
Tja, das tut es leider nicht.
Wie kann ich dieses Problem beheben?
Du könntest ein compilierbares Minimalbeispiel zeigen, das den Fehler reproduziert. Ansonsten ist Raten angesagt. Warum benutzt du einen Vector für 1 Element? Wird der Destruktor dieser ominösen namenlosen Klasse überhaupt aufgerufen? Erstellst du vielleicht eine Instanz dieser Klasse, die nicht wieder zerstört wird?
-
Machst du das Ganze in einem statischen Objekt?
Dann ist es gut möglich, dass der BoundsChecker das einfach nicht richtig auf die Reihe bekommt.