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"


Anmelden zum Antworten