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