Ich habe ein Problem während der Arbeit an einem C-Code mit Microsoft Visual Studio-2005-Compiler konfrontiert.Kompilierungsfehler: kann kein Array mit konstanter Größe 0 zuweisen. Warum bekomme ich das?
Ich habe versucht, einen großen Puffer statisch als zu erklären:
int gbl_data[4096*4096*256];
EDIT: Diese Deklaration eine globale Variable in einer Header-Datei war.
Es gab eine Kompilierung Fehler sagen - "kann kein Array der konstanten Größe 0 zuweisen".
Bedeutet irgendwie die Größe von 4096X4096X256 wurde zu groß als die MAX_INT_LIMIT Größe (2^31) und kann sich um und wird -ve oder so. Aber dann hätte es einen Fehler als "negativer Index" geben sollen.
Ich habe versucht, die Konstanten als 4096UL x 4096UL x 256UL, immer noch gleichen Kompilierungsfehler.
Was ist die Ursache für diesen Fehler?
Liegt es daran, dass die physische Speichergröße nicht ausreicht, um diesen großen Puffer zuzuordnen oder was?
Was ist die Lösung dafür?
Vielen Dank.
-GM.
Wie groß ist eine Instanz von gbl_data? – sharptooth
ist es eine Reihe von Ints. gbl_data ist nur der Array-Name :) – jalf
"Ich habe versucht, einen großen Puffer zu deklarieren" ist eine Untertreibung :) –