Einzelnen Beitrag anzeigen

enigma

Registriert seit: 15. Jun 2008
47 Beiträge
 
#7

AW: Free bei 2 Objekten mit derselben Referenz -> Ungültige Zeigeroperation

  Alt 15. Apr 2017, 19:15
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;
  Mit Zitat antworten Zitat