C'est une question d'entrevue. Jusqu'à maintenant, j'ai l'habitude de penser que ces questions ont été purement compilateur dépendante et ne vous inquiétez pas de moi, mais maintenant, je suis plutôt curieux.
Supposons que vous disposez de deux structures:
struct A {
int* a;
char b;
}
et ,
struct B {
char a;
int* b;
}
Alors, qui choisiriez-vous et pourquoi? Ma réponse était comme ça (même si j'ai été un peu prise de vue dans l'obscurité) que la première structure qui doit être privilégiée car le compilateur alloue de l'espace pour une structure dans certains multiples de la taille de mot (qui est la taille du pointeur de 4 octets sur 32 bits machines et 8 octets, 64 bits). Donc, pour les deux structures, le compilateur va allouer de 8 octets(en supposant que ses un ordinateur 32 bits). Mais, dans le premier cas, le remplissage serait fait après toutes mes variables(c'est à dire après a et b). Donc, même si par hasard, b obtient une valeur qui déborde et détruit mon prochain collier octets, mais mon un est encore sûr.
Il n'a pas semblé beaucoup de plaisir et a demandé un inconvénient de la première structure au cours de la seconde. Je n'ai pas grand chose à dire. :D
Merci de m'aider avec les réponses.