Moin,
ich habe diese Struktur:
1 | typedef struct {
|
2 | uint16_t index;
|
3 | uint8_t data[];
|
4 | } my_struct_t;
|
In einem Speicher steht nun ein Array dieser Datenstruktur mit einer
vorgegebenen Datengröße. Wenn man einen Pointer auf die Struktur setzt
und einmal inkrementiert, so zeigt dieser richtigerweise 2 Bytes weiter.
1 | my_struct_t *p = (my_struct_t *) 0x1000;
|
2 | cout << p << endl;
|
3 | p++;
|
4 | cout << p << endl;
|
Ausgabe:
0x1000
0x1002
Wie kann ich erreichen dass p z.B. 11 Bytes weiter zeigt, weil etwa in
einem Datenheader steht dass die Datengröße 9 beträgt und ich so durch
die Datenblöcke iterieren möchte?
Werner