Comme c’est urgent, je vais répondre la semaine prochaine. Ou le mois prochain ? Non sérieusement, tu devrais lire les règles du forum et en fait même sans les lire, ce serait bien de dire bonjour.
Bonsoir ! 'sizeof' n'est pas une fonction mais un opérateur (unaire). La taille totale de la structure n'est pas la somme des tailles de chaque champ, comme tu viens de le constater. C'est un problème assez subtil : les octets sont regroupés. Mettons qu'ils soient regroupés par 4, dans ce cas le premier groupe contient l'entier, un deuxième groupe contient les quatre premiers caractères, et un troisième groupe contient le cinquième caractère ainsi que trois octets vide qui ne sont là que pour du remplissage, mais appartiennent à la structure. Du coup ça fait 12 octets. Cette caractéristique porte un nom, je ne sais plus lequel (si je m'en étais souvenu, j'aurais pu trouver plein d'articles à ce sujet à l'aide d'un moteur de recherche car c'est un sujet classique).
De mémoire, dans une structure, le type le plus large défini le multiple minimum. Si tu as un int et un char, alors le int prend ses 4 octets, mais le char aussi dont 3 octets de padding:
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Bonhomme !! | Jeu de plateforme : Prototype.