Zitat von
OLLI_T:
funzt
Nähere Bedeutung bitte!
Zitat:
Delphi-Quellcode:
Var pC:PChar;
begin
Getmem(pC,100);
Zeromemory(pC,100);
Freemem(pC);
End;
Und was geht daran nicht?
Zitat:
Delphi-Quellcode:
Var pC:PChar;
Begin
Getmem(pC,100);
pC:='Zensiert';
Freemem(pC);
End;
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.
Einem PChar weist man Strings nicht so zu, außer du weißt, dass er konstant (schreibgeschützt) sein soll, dann darfst du aber auch keinen Speicher reservieren oder freigeben.
Delphi-Quellcode:
GetMem(pC, 100);
StrCopy(pC, 'Zensiert');
FreeMem(pC);
Die beiden Zeilen
Delphi-Quellcode:
Getmem(pC,100);
Zeromemory(pC,100);
kann man auch so schreiben:
pC := AllocMem(100);