Einzelnen Beitrag anzeigen

OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Speicher für PChar allozieren und freigeben

  Alt 17. Okt 2003, 11:24
Vielen vielen Dank, Andy!

Zitat:
Du reservierst hier Speicher, auf den pC dann zeigt und überschreibst den Wert von pC mit dem Zeiger, den der Compiler für 'Zensiert' erzeugt hat. Danach versuchst du den schreibgeschützten Zeiger, der nicht dem Wert entspricht, den GetMem zurückgeliefert hat, freizugeben.
Gerade ist es mir wie Schuppen aus den Haaren ...

Zu meiner Ehrenrettung muss ich sagen, dass ich das Beispiel etwas vereinfacht hatte. Ursprünglich hatte ich folgenden Code, also keine String Konstante:

Delphi-Quellcode:
GetMem(pC,100);
pC0:=pC; // ursprünglichen Zeiger sichern
pC:=PChar(AText); // Das ist der Bock!
While StrLen(pC)>0 Do Begin
  ...
  Inc(pC); // pC bis zum bittern Ende hochzählen
End;
Freemem(pC0); // Hier hat´s geknallt
Hier hab ich wohl den Zeiger von pC auf den Speicherbereich von AText geändert.

Jetzt geht es wie geschmiert!

Viele Grüsse + schönes WE

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat