当我执行此代码时(gcc编译):
#include <stdio.h>
int main() {
int table[1005][1005];
return 0;
}
它停止工作,但当我将其更改为:时
#include <stdio.h>
int table[1005][1005];
int main() {
return 0;
}
它工作得很好。。为什么会具体发生这种情况?全局变量是否有更多的空间可供分配?为什么?
第一种方法可能是在堆栈上创建数组,第二种方法可能将其放入"数据段"。
根据您的平台,分配的金额可能对堆栈来说太大。