J'ai besoin de définir un tableau de manière statique (dans un fichier * .h) de taille 12884901888 comme.Définition d'un grand tableau de taille supérieure à une limite int non signée
unsigned char sram[12884901888]; //All of my code is C.
La déclaration ci-dessus donne une erreur et ne fonctionne pas. Parce que les constantes utilisées dans les déclarations de tableau sont des entiers int. Mais la constante que j'ai besoin d'utiliser (12884901888) est plus grande que la limite int non signée.
Comment puis-je définir le tableau comme ci-dessus, de taille 12884901888?
Merci.
-AD
post-scriptum Je sais que beaucoup diront, optimisez sur cette taille de tableau gigantesque, mais je dois utiliser même pour une raison spécifique à mon cas.
Vous pouvez envisager d'utiliser un tableau à deux dimensions. J'oublie ce que la norme dit dans ce cas, mais je suis assez certain que (au moins dans C90) un tableau bidimensionnel de taille fixe est garanti d'utiliser une disposition de pointeur de ligne. Si tel est le cas, alors le tableau à deux dimensions peut être traité comme un tableau à une dimension (en utilisant la "formule" de mise en page de pointeur de ligne, bien sûr). –