Tableau de 5ko, VirtualAlloc nécessaire ?

Résolu
HeavenForsaker Messages postés 223 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 8 août 2011 - 10 avril 2008 à 11:36
HeavenForsaker Messages postés 223 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 8 août 2011 - 13 avril 2008 à 11:31
Bonjour,

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...

++

4 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
10 avril 2008 à 12:46
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.
3
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
11 avril 2008 à 01:30
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.

Tableaux 2 dimensions dynamiques, démo ici:
http://www.cppfrance.com/code.aspx?id=11356

ciao...
BruNews, MVP VC++
3
HeavenForsaker Messages postés 223 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 8 août 2011
10 avril 2008 à 22:00
Merci BruNews pour la réponse. Normalement le compilo aligne les structures automatiquement, devrais pas y avoir de soucis à ce niveau la.

Une autre question : une fois que j'ai alloué, comment je peut accéder aux 2 dimensions de mon tableau ?
0
HeavenForsaker Messages postés 223 Date d'inscription mercredi 13 juillet 2005 Statut Membre Dernière intervention 8 août 2011
13 avril 2008 à 11:31
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.

Un grand merci pour ton code, ça marche impec :-)

++
0
Rejoignez-nous
A voir également