可能重复:
C 编程,为什么这个大数组声明会产生分段错误?
为什么这个程序会崩溃?它适用于最大 1e6,如果我不将每个值都设置为 0,它也可以正常工作。
程序没有分配所有的内存吗?
int main() {
const int max = 10000000; // 1e7
int end[max];
unsigned int i;
for ( i = 0; i < max; i++ )
end[i] = 0;
}
$ gcc test.c && ./a.out
Segmentation fault (core dumped)