Wann Speicher wieder freigeben?
-
Hi,
ich definiere mir hier ein Stringlist-Objekt, welches ich an einigen Stellen gebrauche.:
#include <vcl.h>
#pragma hdrstop
#include "main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormMain FormMain;
TStringList MyList = new TStringList();Wann muss ich (oder muss ich überhaupt) diesen Speicher wieder freigeben? Wenn die Anwendung geschlossen wird, wird dan nicht der Speicher automatisch freigegeben?
Gruß
Al
-
hallo,
eine tstringlist solltest du spätestens bei progende freigeben, da sie keinen owner hat geschieht dies nicht automatisch...
mfg
murph
-
hi, danke für die antwort. ich habe delete im ereignis des mainforms ondestroy eingebaut, das ist doch ok, oder?
gruß
al
-
Wann Speicher wieder freigeben?
Dann, wenn der ds Objekt nicht mehr gebraucht wird.
-
Ist schon klar, nur denke, ich, dass wenn die Anwendung beendet wird, reservierter Speicher autonamtisch freigegeben wird!?
-
murphy schrieb:
hallo,
eine tstringlist solltest du spätestens bei progende freigeben, da sie keinen owner hat geschieht dies nicht automatisch...
mfg
murphIch denke das war das was Murphy dir damit sagen wollte
Schlumpf_
-
ok bin eigentlich selber anfänger aber ich denk mit der zuweisung:
TStringList* MyList = new TStringList(this);
betohnung liegt auf this! damit sagst du das die stringlist zu deiner application gehört und wenn diese beendet wird löscht sie alle this komponenten automatisch und du brauchst dich nicht um die freigabe kümmern.
gruß
binary
-
binary trust schrieb:
betohnung liegt auf this!
Bevor du das so betonst hättest du das vielleicht mal testen sollen ...
-
oh meno, stimmt das etwa nicht ?
-
hallo,
nein, das ist natürlich quark mit soße. um genau das ging es mir bei meiner antwort gaaaaanz am anfang. ich sagte doch, da tstringlist keinen owner als parameter annimmt muss man für das bereinigen selber sorgen, ansonsten, wenn man z. b. ein form als owner mitgeben kann, ist dieses dafür verantwortlich. bevor du das näxte mal so einen quark postest, teste es wenigstens einmal...
mfg
murph