C - 全局与局部多维数组

C - Global vs Local multidimensional array

当我执行这段代码时(gcc编译):

#include <stdio.h>

int main() {

    int table[1005][1005];
    return 0;
}

它停止工作,但当我将其更改为:

#include <stdio.h>

int table[1005][1005];

int main() {

    return 0;
}

它工作得很好.. 为什么会发生这种情况?全局变量是否获得更多 space 分配?为什么?

第一种方法可能是在堆栈上创建数组,第二种方法可能是将它放入 "data segment".

根据您的平台,分配的数量对于堆栈来说可能太大。