Byte Array durchlaufen
-
Hi,
ich will folgenden Bytearray durchlaufen aber sehe immer nur ein Byte.
signed char *dataArray = new signed char[nbrBytesAlloc]; ... signed char const *dataPtr = dataArray; signed char const * const dataEndPtr = dataArray + dataDesc.actualDataSize; ... while (dataPtr < dataEndPtr) { printf("# Content: %d \n", (signed int) *dataPtr); dataPtr += 8; } ...Sieht doch richtig aus...
Gruß
Franky
-
Nö, sieht nicht richtig aus.
Bei Zeigerarithmetik wird der Zeiger um die Größe eines Elements in Bytes verschoben, nicht in Bit. Du musst dataPtr lediglich um eins erhöhen, statt um acht.
-
Ich Trottel! Danke!
-
Wieso verwendest du hier printf?

-
Und C-Casts ?
Und irgendwie auch C-Arrays ?

Irg. hab ich das gefühl, du bis' im falschen Forum.
http://www.c-plusplus.net/forum/f10
-
Hacker schrieb:
Wieso verwendest du signed (klar, eig. egal) ?
signed char ist nicht dasselbe wie char!
-
314159265358979 schrieb:
Hacker schrieb:
Wieso verwendest du signed (klar, eig. egal) ?
signed char ist nicht dasselbe wie char!
Ja, ich weiß. War auch aufs Integral im Cast gemeint. (Nehm's raus)
-
Muss es eigentlich nicht auch hier gecastet werden?
dataPtr += (int *) 8;
-
[Rewind] schrieb:
Muss es eigentlich nicht auch hier gecastet werden?
dataPtr += (int *) 8;Nein. Das wäre sogar sehr großer Quatsch, oder kannst du dir eine Situation vorstellen, in der es Sinn machen würde zwei Pointer zu addieren?
