Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
Delphi 12 Athens
|
AW: Free bei 2 Objekten mit derselben Referenz -> Ungültige Zeigeroperation
18. Apr 2017, 10: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.
|