Thema: Delphi Array löschen

Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Array löschen

  Alt 2. Feb 2004, 14:02
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)...
gruß, choose
  Mit Zitat antworten Zitat