可能重复:
C编程,为什么这个大数组声明会产生分段错误?
这是我第一次来这里,所以如果我打破了一些规定或者这个问题之前已经被解决过,请见谅。 我最近写了一个 C 程序,在其中我有一个矩阵:
char buff[NR][1024*1024];
我需要NR = 128。因此,程序将分配128MB内存。这是在main()函数中。我在几个具备足够内存的系统上测试了它,并且编译时没有错误。但在运行时,所有系统都报告分段错误。当NR = 7时它能工作,但当NR = 8时就不能工作。 我将该代码移到main()函数之外,使其成为全局变量。即使是128,它也不再崩溃。 有人知道为什么会出现这种情况吗? 编译器是GCC