![]() |
String Gültigkeit + PChar Verwendung
Hallo ...
kann man sicher sein, dass ein String immer bis zum Ende einer funktion oder procedure gültig ist, oder wird der Referenzzähler schon nach der letzten Verwendung zurück gesetzt. wenn man eine FunktionA hat, in dieser ist eine String Variable deklariert, man übergibt den String einem Object, und und dieses Object hält ein PChar auf diesen String. Kann man sicher sein, dass der PChar bis zum Ende der FunktionA seine gültigkeit hat, oder kann es vorkommen, dass er dann falsch zeigt? |
Re: String Gültigkeit + PChar Verwendung
Zeig mal ein Beispiel für was du meinst
|
Re: String Gültigkeit + PChar Verwendung
Delphi-Quellcode:
procedure TForm1.test;
var s : String; obj : TMyClass; P : PChar; begin obj := TMyClass.create; s := '32434'; obj.machewas(s); // <- ist hier der String noch ganz sicher verfügbar für das Object? // wenn das Object keine eigene FMyStringKopie : String Variable hält, // sondern nur ein PChar // ist der String also noch da, zufällig da (weil vom speichermanager noch nicht überschrieben) // oder ist er ganz sicher noch da? P := obj.möchtePchar; obj.free; // <- oder ist der String bis zum Ende der Funktion gültig? end; |
Re: String Gültigkeit + PChar Verwendung
Warum soll Delphi dich belügen???
Weißt net ob du das so meinst aber du könntest den string ja auch global erwähnen! |
Re: String Gültigkeit + PChar Verwendung
nein, kein globaler String, sonst hätte ich das ja gemacht.
|
Re: String Gültigkeit + PChar Verwendung
Kannstes nicht ausprobieren? Label1.caption := deinpcharstring
|
Re: String Gültigkeit + PChar Verwendung
Zitat:
|
Re: String Gültigkeit + PChar Verwendung
Der String ist ganz sicher bis zum Ende der Prozedur vorhanden. Er gehört ja auch der Prozedur und solche lokalen Variablen werden auf dem Stack abgelegt bzw. bei einem String wird auch nur die Adresse abgelegt. Dieser Stackinhalt muss erhalten bleiben, solange die Prozedur abläuft.
Anderer Thread? wie soll das gehen, das ist eine lokale Variable! Gruss Thorsten |
Re: String Gültigkeit + PChar Verwendung
Zitat:
Wo ist die Variable dann hin, und warum kann der Debugger das manchmal nicht anzeigen da? lg |
Re: String Gültigkeit + PChar Verwendung
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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