Ahir tot estudiant per l’examen de C del divendres vaig descobir que quan calcules la mida d’una structura no sempre coincideix amb la suma de les mides dels membres.
Per exemple si tens una estructura alumne:
typedef struct {
char nom[10];
char cognoms[20];
int edat;
int nota;
}TAlumne;
A primera vista això hauria d’ocupar 38bytes, però resulta que si fas un printf(“%d”,sizeof(TAlumne)); la sorpresa és que el compilador es treu 2 bytes de la butxaca, et retorna un 40.
Vaig està remenant per internet cercant una resposta, i pel que vaig descobrir es veu que les mides de les estructes han de ser multiples de 4.
És per aquest motiu que el compilador diu que ocupa 40 i no 38, perquè¨ 38 no és múltiple de 4.
0 Responses to “sizeof() i les estructures”