Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#10

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

  Alt 18. Apr 2017, 09:41
Um auf die Eingangsfrage zurückzukommen: Die Objekt-Variablen enthalten nur einen Zeiger auf den Speicherbereich, der die Daten des Objektes enthält. Es ist es nicht möglich festzustelllen, ob der Zeiger gültig ist oder das Objekt bereits freigegeben wurde. Deshalb setzt man die Objektvariablen bei Freigabe der Objekte explizit durch Zuweisung oder implizit mit FreeAndNil() auf den Wert Nil (Adresse 0).

Für mehrere Referenzen auf ein Objekt gibt es zwei Wege das Problem zu lösen:
- Observer-Model
- Interfaces
Für schwach Referenzen werden z.T. auch beide Möglichkeiten kombiniert.
  Mit Zitat antworten Zitat