Noch schöner:
Delphi-Quellcode:
begin
FMyVal := '42';
DoMore;
end;
procedure TWhatever.DoMore();
begin
DoSomeThing(FMyVal);
end;
procedure TWhatever.DoSomething(const sVal : String);
begin
FMyVal := '';
FMyVal := '43';
if (sVal = '43') then ShowMessage('Aua');
end;
Da der Speicherbereich erneut verwendet wird, ist in sVal der neue Wert direkt drin.
Das ist wirklich eine schöne Falle, die man nicht sofort sieht.