int型二维数组的最大长度
我想问个基础问题,就是我在编程序时候,由于数据比较大,所以int array[10000][200],然后显示出错。但是int array[65536]却是没事的。我想问问出现这个问题的原因,然后int型一维二维数组最大能表示的长度是多少?还有string型一维二维数组分别能表示的长度。先谢谢大家的回答吧!
[解决办法]
[解决办法]
数组下标一般是int或unsigned int类型,在32位机器上足够定义出20亿以上的下标范围了。通常大数组出错都不是它造成的,而是因为数组耗尽了栈空间的缘故。
定义大型数组应该尽量放在堆里,别放在栈上。栈空间很有限,不该浪费它。
放堆里有很多办法:用new创建、定义为static数组、定义为全局数组等等。
[解决办法]
static int array[10000][200];
在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可。