Я столкнулся с одной проблемой при работе над кодом C с помощью компилятора Microsoft Visual Studio-2005.
Я пытался статически объявить большой буфер как:
int gbl_data[4096*4096*256];
РЕДАКТИРОВАТЬ: Это объявление было глобальной переменной в заголовочном файле.
Он выдавал ошибку компиляции, говоря: « не может выделить массив постоянного размера 0 ».
Означает, что размер 4096X4096X256 каким-то образом становился слишком большим, чем размер MAX_INT_LIMIT (2 ^ 31), и может обернуться и стать -ve или около того. Но тогда он должен был дать ошибку как «отрицательный индекс».
Я попытался привести константы как 4096UL x 4096UL x 256UL, все та же ошибка компиляции.
В чем причина этой ошибки?
Это потому, что физическая память не хватает для размещения этого буфера большого размера или что?
Что это за исправление?
Спасибо.
-GM.