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

2024-11-22 08:56:54
推荐回答(2个)
回答1:

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

回答2:

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