c语言这样写为什么运行不了,a[1000000]时不行,a[100000]时又行?

2024年11月22日 08:56
有2个网友回答
网友(1):

函数内部定义的数组是存放在栈中的,而一般栈的空间都不大,你定义的数组太大了,使得栈的容量不足,所以不能运行了。建议采用动态申请的方式定义这个数组,例如:int *a = (int *) malloc(1000000 * sizeof(int));使用完了后要记得释放。

网友(2):

1000000 占用资源过高,超出能处理的范围, 所以运行不了,100000 没有超出范围 ,所以能运行