Müßte es nicht heißen
inc(p^,sizeof(char));
?
Ich vermute mal, die Dereferenzierung ist ein Versehen, denn das würde den Character-Wert ändern und nicht den Pointer.
Das
Sizeof(Char)
ist hier nicht nur nicht notwendig, sonder wäre sogar schädlich. Bei typisierten Pointern (hier
PChar) wird bei Inc/
Dec die Größe des Typs (in diesem Fall
Char) berücksichtigt. Funktioniert auch hervorragend mit Pointern auf Records. Lediglich bei (untypisiertem) Pointer wird byte-weise verändert.
http://docwiki.embarcadero.com/Libra.../de/System.Inc
Zitat:
Wenn X ein Zeigertyp ist, wird X um N-mal der Größe des Typs, auf den gezeigt wird, inkrementiert. Für
type PMyType = ^TMyType;
und
var P: PMyType;
inkrementiert die Anweisung Inc(P) P um SizeOf(TMyType).