【发布时间】:2011-03-16 09:40:01
【问题描述】:
可能重复:
C programming, why does this large array declaration produce a segmentation fault?
这是我第一次来这里,如果我违反了一些规则或者之前已经回答过这个问题,非常抱歉。 我最近做了一个 C 程序,其中有一个矩阵
char buff[NR][1024*1024];
我需要 NR = 128。所以程序将分配 128MB。这是在 main() 中。我在几个内存足够的系统上尝试过,编译时没有错误。在运行时,我在所有系统上都收到了分段错误。它适用于 NR = 7,但不适用于 8。 我将该代码移到 main 之外,使其成为全球性的。即使是128,它也不再崩溃。 有谁知道为什么会这样? 编译器是 GCC
【问题讨论】: