Thema: Delphi String freigeben nur wo?

Einzelnen Beitrag anzeigen

Blup

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

AW: String freigeben nur wo?

  Alt 27. Feb 2019, 12:03
selbst freigegeben.. nein sonst müsste ich mir nicht die Arbeit machen oder?
Diese Arbeit ist überflüssig, wie kommt man auf so eine Idee?
Delphi-Quellcode:
...
sBuffer := '';
Reicht völlig aus.

Strings verhalten sich wie Interfaces, Stringvariablen wie Interfacevariablen.
Ein String belegt einen bestimmten Speicherbereich, fällt der Referenzzähler des Strings auf 0, wird dieser an den Speichermanager als frei gemeldet.
(Das heist nicht das der Speichermanager diesen auch sofort an Windows frei gibt oder mit Nullen überschreibt.)
Wird ein String sowohl einer Variablen als auch einer Liste zugewiesen, wird trotzdem nur einmal Speicher belegt. Nur der Referenzzähler erhöht sich bei jeder Zuweisung.
Wird der Speicherbereich gelöscht, verweisen natürlich auch beide auf den gelöschten Speicher. Das ist natürlich nicht erwünscht.
  Mit Zitat antworten Zitat