<分区>
为什么 int array[1000][1000]
在 main
方法而不是全局声明中声明时在 C 程序中是内存问题?
标签 c
<分区>
为什么 int array[1000][1000]
在 main
方法而不是全局声明中声明时在 C 程序中是内存问题?
最佳答案
堆栈的大小有限,因此只能容纳有限的信息。如果程序试图将太多信息放入堆栈,则会导致堆栈溢出。当堆栈中的所有内存都已分配时,就会发生堆栈溢出。
程序
int main()
{
int array[1000][1000];
return 0;
}
尝试在堆栈上分配一个巨大的数组。
因为堆栈不够大,无法处理这个数组,所以数组分配溢出到程序不允许使用的内存部分。结果,程序崩溃了。
进一步阅读:The stack and the heap .
关于c - 为什么 int array[1000][1000] 是 C 程序中的内存问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25804155/