Also ist durch FreeAndNil(obj1) der Speicher zwar freigegeben,
aber noch nicht neu belegt?
Und weshalb kann ich den Speicher über
obj1.Free mehrfach freigeben, aber nicht über obj2.Free?
Delphi-Quellcode:
procedure testFreeAndNil;
var
obj1, obj2: TestKlasse;
begin
obj1 := TestKlasse.Create;
obj2 := obj1;
FreeAndNil(obj1);
obj1.Free; {klappt auch nach obigem FreeAndNil(obj1) }
// obj2.Free; {falls nicht auskommentiert: Ungültige Zeigeroperation}
end;