Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#11

Re: Sauber Programmieren: Variablen zurücksetzen?

  Alt 12. Jul 2005, 07:15
"array of" und string werden ausschliesslich auf dem Heap alloziiert.
Delphi implementiert daher ein heimliches try finally, um die lokalen Variablen zu initialisieren und finalisieren.
Delphi-Quellcode:
var
  Bla: array of Integer;
begin
  try
     Bla := nil; // das sind Null Elemente
     ....
     // Userteil der Funktion
  finally
     SetLength(Bla, 0); // das dealloziiert die Variable und setzt auf Null Elemente = nil
  end;
end;
Bei globalen Variablen legt Delphi zusaetzliche initialization und finalization Sections an, um das zu erledigen.
Man sollte daher globale, getypte und initialisierte Konstanten-Arrays mit Strings vermeiden. Meist genuegt es PChar zu verwenden.
Delphi spart sich dann die Sections und wandelt die PChars erst in Strings um wenn man sie benutzt.
  Mit Zitat antworten Zitat