Seite 1 von 1
Pointer inkrementierung
Verfasst: Do Aug 13, 2009 3:46 pm
von cloidnerux
Ich habe jezt mal eine etwas banale Frage:
Wenn ich einen Pointer auf uint32 habe, und dann
Ausführe, wird dann um 1Byte weitergezält oder um 4?
p += 1;
Und wird hier auch um 1 byte weitergezält oder um 4??
MfG cloidnerux.
Re: Pointer inkrementierung
Verfasst: Do Aug 13, 2009 3:51 pm
von Xin
Pointer werden immer in der Größe ihrer Datensätze verändert.
p++; ist also Adresse von + sizeof( uint32 ).
Selbiges gilt für p+=1: 1 * sizeof( uint32 ).
Wäre p ein Zeiger auf eine struct foo, so würde p um sizeof( struct foo ) verschoben.
Wenn Du Byteweise vorgehen möchtest, musst Du zuerst auf einen Datentyp casten, der 1 Byte groß ist, z.B. (char *)
Re: Pointer inkrementierung
Verfasst: Do Aug 13, 2009 4:05 pm
von cloidnerux
Wenn Du Byteweise vorgehen möchtest, musst Du zuerst auf einen Datentyp casten, der 1 Byte groß ist, z.B. (char *)
Achso, gut. Danke für die Antwort.