Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: TIntList - Array freigeben?
12. Jul 2005, 08:11
Hallo bigg,
FreeMemory, New, Dispose sollen laut Borland nicht auf dynamische arrays angewendet werden. Für ein dynamisches array (da) reservierst du Speicher mit SetLength(da, 10) und gibst ihn mit da := nil wieder frei. Da der Compiler für dynamische arrays die gleiche Referenzzählung verwendet wie für lange strings, wird in deiner Methode Delete() beim Zuweisen eines neuen arrays an FIntList dessen Zähler verringert und der Speicher freigegeben.
Wenn du den Code produktiv einsetzen möchtest, dann solltest du erwägen, ob du TIntList nicht von TList ableitest. Wenn du dann einen Quicksort spendierst und die Integers geordnet speicherst, geht alles viel schneller und sicherer.
Grüße vom marabu
|