Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.443 Beiträge
 
Delphi 12 Athens
 
#47

AW: Anzahl eines Zeichens im String ermitteln

  Alt 13. Jul 2018, 00:41
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).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat