Titre: [C] Problème de structure Posté par: Ge0 le 19 Janvier 2009 à 10:27:31 Salut, salut.
J'ai un petit problème avec les structures en C. Tout d'abord, voici le petit code sur lequel je travaille : Code: #include <stdio.h> Normalement, le programme devrait m'afficher "6 octets." ; il m'en affiche 8. Comment cela se fait-il que la taille de la structure soit considérée à 8 octets ? Comment faire pour qu'elle en fasse 6 tout bonnement ? Pour information, j'ai compilé la source avec CodeBlocks sous WinXP, ainsi que GCC sous Ubuntu 8.10 (je ne sais pas la version de son noyau dans son exactitude, mais je ne sais pas si c'est intéressant, ici). Titre: Re : [C] Problème de structure Posté par: mogg41 le 19 Janvier 2009 à 11:09:06 Bonjour Geo.
On recherchant vite fait sur google, je suis tombé sur ça: * http://www.cppfrance.com/forum/sujet-COMMENT-CONNAITRE-TAILLE-STRUCTURE_1238335.aspx (http://www.cppfrance.com/forum/sujet-COMMENT-CONNAITRE-TAILLE-STRUCTURE_1238335.aspx) * http://www.commentcamarche.net/forum/affich-877698-taille-exact-d-une-structure-c-c?Acces=1 (http://www.commentcamarche.net/forum/affich-877698-taille-exact-d-une-structure-c-c?Acces=1) Si j'ai bien compris, la taille d'une structure doit être un multiple entier de la taille d'un mot. La taille d'un mot serait variable d'un ordinateur à un autre et dans ton cas elle serait de 4 octets, d'où le 8 octets (2* 4 octets). N'hésitez pas à me contredire si je me trompe. Mogg Titre: Re : [C] Problème de structure Posté par: harvey le 19 Janvier 2009 à 12:02:55 Tu trouveras une réponse un peu plus claire ici:
http://fr.wikipedia.org/wiki/Alignement_de_donn%C3%A9es (article sur l'alignement de données) En l'occurence, ta structure doit ressembler à celle-ci: Code: typedef struct { Titre: Re : [C] Problème de structure Posté par: Ge0 le 19 Janvier 2009 à 17:44:38 Bon, au moins, le message est on ne peut plus clair.
Merci, Harvey et Mogg. :) |