![]() |
saubere Freigabe von (dynamischen) Arrays
Wie gibt man eigentlich Arrays, im spezielle dyn. Arrays wieder frei?
nil setzen ist sicherlich nicht sauber, oder? Ich würde mich für die sauberste Methode interessieren. Wie siehts dabei mir dem Zeitaufwand aus? Danke :P |
Re: saubere Freigabe von (dynamischen) Arrays
Wenn sie lokal sind, werden sie sowieso nach der Beendigung der Routine wieder freigeben. Man könnte sie noch vorher auf die Länge 0 setzten.
|
Re: saubere Freigabe von (dynamischen) Arrays
Sonst gibt es keine Funktion?
:-D |
Re: saubere Freigabe von (dynamischen) Arrays
Du kannst auch SetLength(Array,0) machen. Aber es läuft alles auf gleiche hinaus. Wichtig ist nur, dass Objekte dadrin nicht automatisch freigegeben werden.
|
Re: saubere Freigabe von (dynamischen) Arrays
Ich verstehe?
Dann hat also
Delphi-Quellcode:
setzen auch keinen sinn!
myarray:=nil
Sollte ich das also aus dem Code rausnehmen? Danke |
Re: saubere Freigabe von (dynamischen) Arrays
Doch, ist in Ordnung.
Delphi-Quellcode:
ist äquivalent zu
Arr := Nil;
Delphi-Quellcode:
Gruß, teebee
SetLength(Arr,0);
|
Re: saubere Freigabe von (dynamischen) Arrays
Danke ! :-D
|
Re: saubere Freigabe von (dynamischen) Arrays
Zitat:
|
Re: saubere Freigabe von (dynamischen) Arrays
Moin!
Die Verwendung von Initialize() und Finalize() verhindert Speicherlecks... MfG Muetze1 |
Re: saubere Freigabe von (dynamischen) Arrays
Zitat:
|
Re: saubere Freigabe von (dynamischen) Arrays
Zum Thema Speicherlecks habe ich eine intressante Unit gefunden:
![]() Mit der können ohne Probleme Speicherlecks aufgedeckt werden. |
Re: saubere Freigabe von (dynamischen) Arrays
Moin!
Zitat:
- Vor der Verwendung des Arrays einmalig Initialize() (also auch vor dem SetLength()) - Nach der Verwendung des Arrays einmalig Finalize() (also zuvor SetLength(arr, 0))
Delphi-Quellcode:
MfG
Var
BMPBuffer : Array Of pBitmapBufferEntry; ... Initialization If IsConsole Then WriteLn(UNIT_ID); Initialize(BMPBuffer); Finalization Finalize(BMPBuffer); End. Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz