Mějme strukturu
# pragma pack(1)
typedef struct
{
uint8_t a;
uint8_t b;
uint32_t c;
} Struct;
Struct s;
Direktiva pragma pack u překladeče MS zajistí , že se pro strukturu vyčlení v paměti 6bytů.
Pokud s.a=1, s.b=2 a s.c=3 mělo by být v paměti ulozeno po bytech 1,2,0,0,0,3 (připoušítm, že u uint32 by to mohlo byt i obráceně, ale to ted neřešme).
Mám funkci, které když zadám adresu v paměti a počet bytů ona data z paměti odele byt o bytu tedy při f(&s,6) by měla přenést 1,2,0,0,0,3 což se, ale nestane, první byte se OK ale už druhy obshuje jinou hodnotu.
Co dělm blbě, respektive kde je chyba?