定义三维数组bool array[200][200][200];
结果运行时程序直接停止运行了,这是因为数组太大吗,怎么解决?
第1个回答 推荐于2016-09-01
是。超出了局部变量能够容纳的范围。
如果对你来说调整这个限制太难了,那么把它定义成全部变量应该就能解决了。本回答被提问者采纳
如果对你来说调整这个限制太难了,那么把它定义成全部变量应该就能解决了。本回答被提问者采纳
第2个回答 2014-12-05
有的系统中,bool类型占用的字节数与int类型一样(可以测试: sizeof(bool)),都是4个字节,故对于
bool array[200][200][200]来说,需要的内存为200 * 200 * 200 * 4 = 3.2 * 10^7 ≈ 32.52MB,若将数组改为char array[200][200][200],只需约7.63MB。
bool array[200][200][200]来说,需要的内存为200 * 200 * 200 * 4 = 3.2 * 10^7 ≈ 32.52MB,若将数组改为char array[200][200][200],只需约7.63MB。