J'ai un tableau de structure à 2 dimensions (MyTab) qui se présente comme ceci :
typedef struct _MYSTRUCT {
TCHAR Char
WORD wData
} MYSTRUCT;
MYSTRUCT MyTab[5][256];
Le tableau fait 5ko, est-ce préférable d'utiliser une fonction d'allocation mémoire (VirtualAlloc ou autre) ou puis-je m'en passer ?
Apparement ça fonctionne très bien sans...
Pour 5 Ko, HeapAlloc() ira très bien vu que dans ton cas, un simple alignement sur 4 suffira.
Par contre le membre WORD risque un mauvais alignement en compilation ANSI pour cause de TCHAR.
Mets une union avec char[2] et un WORD pour le 1er membre.
Le compilo fera et pensera pour moi...
Pour ceux qui "pensent" ainsi on a créé les langages interprétés. Si tu veux gravir les échelons, il te faudra rapidement changer de point de vue. Pour t'en convaincre, cherche donc une structure bancale dans l'API Windows. Je ne pratique pas les Unix mais on peut être certain que eux aussi sont écrits correctement.
Je trouve ton raccourci un petit peu rapide entre le language interprété et le fait de laisser le compilo effectuer un alignement. Cela dit je suis quand même d'accord sur le fait qu'il vaut mieux aligner directement ses structures.