C - 全局与局部多维数组

标签 c multidimensional-array global-variables local-variables

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

#include <stdio.h>

int main() {

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

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

#include <stdio.h>

int table[1005][1005];

int main() {

    return 0;
}

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

最佳答案

第一种方法可能是在堆栈上创建数组,第二种方法可能是将其放入“数据段”中。

分配的数量对于堆栈来说可能太大,具体取决于您的平台。

关于C - 全局与局部多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445111/

相关文章:

c - 返回多维数组的 C 函数的签名

php - 多维索引数组到关联数组取决于列值

C:为什么我的库中的全局变量不会更新? (使用 ALSA 库)

c++ - 如何在 C++ 的另一个作用域中使用局部变量?

c - C 中的别名究竟是什么?

c - 检测截止时间线程抢占

javascript - 从二维数组中选择大量选项的最佳自动完成功能?

Android - 在哪里保存全局数据?

c - 关于从 Assembly 调用 C 函数,反之亦然

c++ - 如何用 C 或 C++ 创建单实例应用程序