![]() |
String-Result explizit freigeben
Hallo zusammen,
Robert Marquardt, hat in dem letzten Post geschrieben, dass String-Result zwar initialisiert werden aber nicht freigegeben werden. Ist dies wirklich so und muss jetzt nach jedem Funktionsaufruf mit String-Result explizit "das Result" freigegeben werden? Viele Grüße Alex ![]() |
Re: String-Result explizit freigeben
PChar ist ja nur ein Zeiger auf einen String. Der Speicherbereich, der von ihm referenziert wird, wird natürlich nicht automatisch Freigeben
|
Re: String-Result explizit freigeben
Also ich weiß nicht ob das stimmt, aber das würde ja richtig in Arbeit ausarten.
Also ich schieße ins Blaue und sage mal, daß es so wahrscheinlich nicht stimmt. Ich hab schon Programme gehabt in während einer Sitzung paar Gigabyte an String Results hin und her schoben. Mir ist dabei nicht aufgefallen, daß ich Speicherprobleme hatte. Und vor allem bei speicherintensiven Programmen habe ich den Taskmanager oft zur Kontrolle offen. Ich teste dabei ob der Speicher ansteigt und nicht wieder freigegeben wird. Mir ist noch nie aufgefallen, daß bei großen Strings der Speicher nicht wieder freigegeben wurde. Edit: Zitat:
|
Re: String-Result explizit freigeben
Mein GOTT...
Lade lieber mal Robert zu diesem Thread ein. Ich denke du hast ihn gaaaanz falsch verstanden. |
Re: String-Result explizit freigeben
@QuickAndDirty: Das ist nicht witzig!
|
Re: String-Result explizit freigeben
Das dort angesprochene Problem war eher, daß der String zu früh freigegeben wird.
ein "String" (der Datentyp) wird in Delphi "immer" automatisch freigegeben, es sei denn, man umgeht "fahrläßig"/absichtlich die Referenzzählung. PChar selber muß nicht greigegeben werden, abgesehn von den Daten, auf welche dieser "Zeiger" zeigt, also wenn man speicher reserviert und den "Zeiger" drauf zeigen läßt, dann muß man diesen Speicher natürlich auch wieder freigeben. |
Re: String-Result explizit freigeben
Ok, danke für die Antwort...
Ich meinte auch eher den Datentyp String anstatt PChar. Das PChar ein Zeiger ist und dieser entsprechend wieder freigegeben werden muss, war mir klar. Also wird ein String immer freigegeben, wenn man nicht manuell in die Refernzzählung eingreift, danke Himitsu @QuickAndDirty: Find ich auch nicht unbedingt witzig... Viele Grüße Alex |
Re: String-Result explizit freigeben
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 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