Anonymní profil Martin – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Martin – Programujte.comAnonymní profil Martin – Programujte.com

 

Příspěvky odeslané z IP adresy 2605:6400:30:f174:42:42::...–

Martin
C / C++ › Procházení struktury byte o…
15. 10. 2024   #392116

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?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý