J'ai rencontré un problème en travaillant sur un code C avec le compilateur Microsoft Visual Studio-2005.Erreur de compilation: impossible d'allouer un tableau de taille constante 0. Pourquoi l'obtenir?
J'ai essayé de déclarer un gros tampon statiquement comme:
int gbl_data[4096*4096*256];
EDIT: Cette déclaration est une variable globale dans un fichier d'en-tête.
Il était en train de donner une erreur de compilation en disant - "ne peut pas allouer un tableau de taille constante 0". Cela signifie en quelque sorte que la taille de 4096X4096X256 devenait trop grande par rapport à la taille de MAX_INT_LIMIT (2^31) et peut être enroulée et devenir -ve ou presque. Mais alors il aurait dû donner une erreur comme "indice négatif".
J'ai essayé de transformer les constantes en 4096UL x 4096UL x 256UL, toujours la même erreur de compilation.
Quelle est la cause de cette erreur? Est-ce parce que la taille de la mémoire physique est insuffisante pour allouer ce tampon de grande taille ou quoi?
Quelle est la solution pour cela?
Merci à vous.
-GM.
Quelle est la taille d'une instance de gbl_data? – sharptooth
c'est un tableau d'ints. gbl_data est juste le nom du tableau :) – jalf
"J'ai essayé de déclarer un gros tampon" est un euphémisme :) –