AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String-Result explizit freigeben

Ein Thema von AJ_Oldendorf · begonnen am 29. Jun 2009 · letzter Beitrag vom 29. Jun 2009
 
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: String-Result explizit freigeben

  Alt 29. Jun 2009, 11:43
Zitat von AJ_Oldendorf:
Ich meinte auch eher den Datentyp String anstatt PChar.
Und wenn dieser lokal deklariert ist, wird er mit Ende der Funktion freigegeben, da dort sein referencecounter auf 0 kommt. Und damit ist der Speicher auf den der PChar vom Result zeigt (bei temporären cast) nicht mehr gültig und PChar zeigt in's Datennirvana.

Zitat von AJ_Oldendorf:
Das PChar ein Zeiger ist und dieser entsprechend wieder freigegeben werden muss, war mir klar.
Nur wenn du wirklich mit New() oder ähnlichem Speicher alloziierst. Ein temporärer Cast von einem String alloziiert keinen Speicher sondern lässt den Zeiger auf den Dateninhalt des Strings zeigen. Somit verlieren diese PChar auch ihre Gültigkeit mit der Freigabe des zugehörigen Strings. Und durch diesen Umstand ist nichts freizugeben, da die Adresse (also der Zeiger) ein Ordinalwert ist und somit keine Speicheralloziierung braucht (eher Register EAX als Rückgabewert).
  Mit Zitat antworten Zitat
 


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 12:57 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