Sven Lanoster
2015-11-10 18:41:10 UTC
Moin, moin.
Ich bin mir ziemlich sicher, dass sowas hier (zumindest früher mal)
problematisch war, weil Variablen auf Unit-Ebene nicht automatisch
genullt wurden.
var
xStringlist: TStringlist;
procedure TuWas;
begin
xStringlist.Free; // <-- *peng* da xStringlist nicht NIL
end;
Ist das immer noch so? Oder garantiert der Compiler inzwischen, dass
globale Variablen (beim Start) NIL sind?
Was ist, wenn die Variable lokal in der Prozedur (über dem Beginn) steht?
Dass der Speicher für Instanzen von Klassen vorher genullt wird, weiß
ich. Das war schon immer so.
Gruß,
Sven.
Ich bin mir ziemlich sicher, dass sowas hier (zumindest früher mal)
problematisch war, weil Variablen auf Unit-Ebene nicht automatisch
genullt wurden.
var
xStringlist: TStringlist;
procedure TuWas;
begin
xStringlist.Free; // <-- *peng* da xStringlist nicht NIL
end;
Ist das immer noch so? Oder garantiert der Compiler inzwischen, dass
globale Variablen (beim Start) NIL sind?
Was ist, wenn die Variable lokal in der Prozedur (über dem Beginn) steht?
Dass der Speicher für Instanzen von Klassen vorher genullt wird, weiß
ich. Das war schon immer so.
Gruß,
Sven.
--
Seltsam? Aber so steht es geschrieben...
Seltsam? Aber so steht es geschrieben...