Einzelnen Beitrag anzeigen

enigma

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

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

  Alt 15. Apr 2017, 16:19
Hier noch ein Beispiel,
dass der gemeinsame Speicherbereich nicht für obj1 u. obj2 freigegeben ist:

Delphi-Quellcode:
procedure testFreeAndNil;
var
  Temp: TObject;
  obj1, obj2: TestKlasse;
begin
  obj1 := TestKlasse.Create;
  obj1.n := 11;
  obj2 := obj1;


  FreeAndNil(obj1);
  ShowMessage(
           //'obj1.n = ' + IntToStr(obj1.n) + #13+ {würde zu Zugriffsverletzung führen}
             'obj2.n = ' + IntToStr(obj2.n) + #13+ {Ausgabe: n = 11 !}
           //'obj1.ClassName = ' + obj1.ClassName + #13+ {würde zu Zugriffsverletzung führen}
              'obj2.ClassName = ' + obj2.ClassName ); {klappt}


end;
  Mit Zitat antworten Zitat