AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Object richtig freigeben

Ein Thema von derseitzer · begonnen am 14. Jun 2017 · letzter Beitrag vom 14. Jun 2017
Antwort Antwort
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
535 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Object richtig freigeben

  Alt 14. Jun 2017, 14:21

Ein Prüfung auf (..) Assigned wird bei Free nicht funktionieren, da Free den Zeiger nicht auf Nil setzt.
Wirklich?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Object richtig freigeben

  Alt 14. Jun 2017, 14:35

Ein Prüfung auf (..) Assigned wird bei Free nicht funktionieren, da Free den Zeiger nicht auf Nil setzt.
Wirklich?
Ja, wirklich. Ich finde das eigentlich auch vernünftig und verwende grundsätzlich nur Free und nicht FreeAndNil. FreeAndNil wiegt einen nur in falscher Sicherheit, da es ja auch noch weitere Referenzen auf das Objekt geben kann, die von FreeAndNil nicht auf nil gesetzt werden.

Delphi-Quellcode:
var
  x,y: TObject;
begin
  x := TObject.Create;
  y := x;
  FreeAndNil(x);
  if Assigned(x) then WriteLn('x assigned');
  if Assigned(y) then WriteLn('y assigned');
end;
Edit: Nur zur Klarstellung, das bezieht sich jetzt natürlich auf klassisches Delphi, nicht auf ARC.
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: Object richtig freigeben

  Alt 14. Jun 2017, 14:41
Also Vielen Dank an euch alle, wieder was gelernt!
Rollo62 Vielen Dank, Disposeof klappt super! Free bewirkt leider nichts und mit Destroy stürzt mein Programm nach ein paar malen ab.
Vielen Dank
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz