Bonjour à tous,

J'ai une question concernant le fonctionnement de l'opérateur sizeof().

Pour le test, j'ai déclaré la structure suivante:

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);
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?

Si quelqu'un a des réponses sur le sujet, merci de m'éclairer.

Bonne fin de journée.