我在使用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