Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Objekte vom Heap löschen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
15.11.2006, 00:15 Uhr
~grimmel
Gast


Hallo,
ich habe folgendes Problem.

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?



wie soll ich vorgehen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.11.2006, 00:24 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


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ßbrote

Dieser Post wurde am 15.11.2006 um 00:28 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.11.2006, 20:35 Uhr
~grimmel
Gast


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?

Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: