bonjour,
j'ai un problème qui me sidère complètement... J'ai un struct composé un peu dans ce genre :
Lorsque je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 typedef monstruct1*{ u_int8_t val1; u_int8_t val2; } monstruct1_t; typedef monstruct2*{ u_int8_t val1; u_int32_t val2; } monstruct2_t;
La mémoire contient bien : AA FF
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 monstruct1.val1 = 0xAA; monstruct1.val2 = 0xFF;
en revanche si je fais :
La mémoire contient : AA 00 00 00 FF FF FF FF... d'où j'en tire que j'ai 3 fois 0x00 qui se sont insérés entre mon val1 et mon val2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 monstruct2.val1 = 0xAA; monstruct2.val2 = 0xFFFFFFFF;
Si je mets val2 en u_int16_t j'obtiens : AA 00 FF FF... je n'ia plus qu'un 0x00 qui s'est inséré.
Je précise que je suis sous g++ sous Mac os x en 64 bits. Est-ce que quelqu'un comprend quelque chose à tout ca ??? Je suis complètement incapable de construire un pauvre struct même pas compliqué à cause de ca !!!
Merci pour votre aide
Tristan
Partager