Also wenn ich innerhalb einer forschleife immer neune heap anlege und mir die pointer in einer datenstruktur speichere - kann ich dann am ende allen heap storage nur über die pointer frei machen? Einfach mal pseudocode der mein grosses problem herunterbricht und es deutlich macht:
C++:
double* a; double* b; double* c;
//hier in diesem array z.B (bei mir ist es eine hash_map) //speichere ich pointer auf arrays die ich pro iteration in der map/array //speichere //nehmen wir einfach mal an dass in dem array pro element einfach mal // z.B 3 Pointer auf arrays gespeichert werden <type> array;
for(int i = 0; i < size; i++) { a = (double*)calloc(...); b = (double*)calloc(...); c = (doubl*)calloc(...);
insert_Array(arr, a, b, c); }
//wie soll ich alle auf dem heap angelegten objekte //nun löschen? Kann ich das irgendwie so machen dass //ich über das array laufe und mir jeweils die pointer //rausnehme und dann so irgendwie lösche?
//so bringts ja nix: delete [] a; delete [] b; delete [] c; //so lösch ich ja nur die letzten bereiche oder?
nicht mischen... entweder nimmst du malloc zum allokieren (und co) und free um den speicher wieder frei zu geben oder new und delete...
wenns c++ sein darf nimm new und delete... wenn du nur ein "normales" array brauchst kannst du auch gleich std::vector verwenden der nimmt dir die komplette allokiererei ab... -- ...fleißig wie zwei WeißbroteDieser Post wurde am 15.11.2006 um 00:28 Uhr von Windalf editiert.
jo danke... kann leider keine vektoren benutzen...
leider löst das mein problem damit net... nehmen wir also an ich hätte alles auf dem heap und pointer auf die einzelnen heap-objekte in dem arrray gespeichert....habe ich eine möglichkeit die heap-objekte dann zu löschen über iteration über das array mit den pointern?