Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Pointer/Cardinal-Casterei beenden

  Alt 28. Jul 2007, 16:02
Zitat von BUG:
Inc(var X, N: LongInt); Klappt nicht, der will einen ordinalen Typen, dh. ich müsste wieder casten.
Meine Lösung aus diesem Thread mal ausprobiert anstatt in die Hilfe zu schauen und sagen das klappt nicht? Wie schon richtig erklärt wird, klappt das wunderbar. Wie auch richtig erklärt wird, klappt es bei einem untypisierten Zeiger nicht, weil Delphi nicht die Grösse der Daten ermitteln kann, auf den der Zeiger zeigt (Da kein Typ, daher auch untypisiert). Sobald er typisiert ist, inkrementiert er den Zeiger ohne Probleme.

Inc(ptr);

entspricht

Ptr := ptr + sizeof(ptr^);


bzw:

p += sizeof(*p);
  Mit Zitat antworten Zitat