Hallo teebee,
bei dynamischen Arrays sollten die Lösungen von moin339 und Jens funktionieren, weil tatsächlich implizit eine Art von
Finlaize aufgerufen wird. Weil Gabriel jedoch nicht nach einer Möglichkeit Veringern der Elementanzahl auf null sondern nach einer Lösung zum
Löschen aller Einträge fragte, ging ich von "normalen" (statischen) Arrays aus, bei denen die bereits beschriebenen Probleme auftreten können.
Achtung: Sollte ein Konstrukt dieser Art verwendet werden
Delphi-Quellcode:
var
myArray: array of TMyType;
begin
//...
FillChar(myArray, SizeOf(myArray), 0);
wird tatsächlich nur die Referenz auf das dynamische Array mit Nullen gefüllt, so dass
myArray den Wert
nil hat. Allerdings wird auch hierbei die Delphi-Referenzzählung untergraben, die bei einem schlichten Aufruf der Form
myArray:= nil;
vom Compiler vorgenommen worden wäre, so dass "Speicherleichen" entstehen (können)...