我在使用Microsoft Visual Studio-2005編譯器處理C代碼時遇到了一個問題。編譯錯誤:無法分配一個常量大小爲0的數組。爲什麼我得到這個?
我試圖靜態地宣佈一個大的緩衝區爲:
int gbl_data[4096*4096*256];
編輯:這個宣言是在頭文件中的全局變量。
這是給編譯錯誤說 - 「不能分配一個恆定大小的數組0」。
意思是4096X4096X256的尺寸比MAX_INT_LIMIT尺寸(2^31)大得多,可能會環繞並變成-ve左右。但是,它應該給出「負下標」的錯誤。
我試着將常量鑄造爲4096UL x 4096UL x 256UL,仍然是編譯錯誤。
這個錯誤的原因是什麼?
是因爲物理內存大小不足以分配這個大尺寸緩衝區或什麼?
它是什麼修復?
謝謝你。
-GM。
gbl_data的一個實例的大小是多少? – sharptooth 2009-05-26 11:55:30
它是一個整數數組。 gbl_data只是數組名稱:) – jalf 2009-05-26 12:00:30