Bonjour à tous,
J'ai une question concernant le fonctionnement de l'opérateur sizeof().
Pour le test, j'ai déclaré la structure suivante:
En résultat j'obtiens size1 = 152 et size2 = 144. Je n'ai pas la même taille et je ne comprends pas pourquoi. La différence de taille proviendrait-elle de l'alignement des données dans la mémoire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 struct test { unsigned int var1; unsigned int var2; unsigned int *ptr1; double dblArray[16]; unsigned int var3; }myStruct; unsigned short size1 = sizeof(myStruct); unsigned short size2 = sizeof(myStruct.ptr1) + sizeof(myStruct.dblArray) + sizeof(myStruct.var1) + sizeof(myStruct.var2) + sizeof(myStruct.var3);
Si quelqu'un a des réponses sur le sujet, merci de m'éclairer.
Bonne fin de journée.
Partager