Speicher von DynamicArray freigeben
-
Guten Morgen,
ich hab' gerade die Möglichkeit der DynamicArrays entdeckt. Elegante Sache, aber mit dem freigeben nach Gebrauch klappts noch nicht so ganz.
Ich erzeuge mir zwei mehrdimensionale Arrays mit:
DynamicArray <DynamicArray<float> > puffer; DynamicArray <DynamicArray<float> > puffer2;Dann weise ich Ihnen Längen zu:
puffer.Length=z+1; puffer2.Length=z+1; ... puffer[Schnittnummer].Length=501; puffer2[Schnittnummer].Length=6; ...Und dann steht in der BCB-Hilfe, dass man dem Array die Länge 0 zuweisen soll, um den Speicher wieder freizugeben:
... //---Array freigeben--- for (int i=0; i<z+1; i++) { puffer[i].Length=0; puffer2[i].Length=0; }; puffer.Length=0; puffer2.Length=0;Wenn ich jetzt aber den Windows-Taskmanager die Prozesse anzeigen lasse, so wächst die RAM-Ausnutzung immer weiter mit jedem Durchgang.
Was mache ich verkehrt? Können ziemliche Datenmengen sein, darum muss ich mir Gedanken dazu machen, denke ich...
Nico
-
Ich würde dir Raten mit der StdLib zu arbeiten und möglichst nicht mit den Funktionen und Klassen von Borland. Such mal unter dem Begriff "std::vector"