Pointer Operationen
-
Hallo, ich habe folgendes Problem mit einem Pointer.
Folgendes ist definiert:unsigned char buffer[25][50];
unsigned char *p__buffer;
p_buffer = &buffer[0][0];D.h. es ist ein mehrdim. char Feld angelegt worden, sowie ein Pointer, welcher auf das erste Element zeigt.
Adresse der ersten Elements sei z.B. 0002F2E3 (-> somit 32 Bit).Nun möchte ein Teil der ersten 16 Bit der Adresse in eine Variable, sowie die letzten 16 Bit eine andere Variable kopieren.
A = 02 (die ersten beiden Nullen abgeschnitten)
B = F2E3Hat jemand eine Ahnung wie ich solch eine operation mit einem
Pointer machen kann? Bitmanipulationen verurachen Fehlermeldungen,
sind also nicht möglich.Gruß
Marco
-
a = p_buffer >> 16; b = p_buffer & 0xFFFF;
-
Das hab ich selber schon probiert, mag der Compiler aber nicht:
'>>': invalid left operand type
'&': incompatible types
-
Dann caste halt vorher noch auf size_t (gibts das im Standard überhaupt? Wenn nicht, gibts ja noch int/long/long long)
-
Wenn schon, dann unsigned int/unsigned long. Es gibt in C99 auch ein intptr_t (ich glaub, so heißt das) für diese Zwecke.