为什么int array [1000] [1000]是C程序中的内存问题?

时间:2014-09-12 08:43:41

标签: c

为什么int array[1000][1000]在用main方法而不是全局声明声明时在C程序中是内存问题?

1 个答案:

答案 0 :(得分:7)

堆栈的大小有限,因此只能容纳有限的信息。如果程序试图在堆栈上放置太多信息,将导致堆栈溢出。堆栈中的所有内存都已分配时发生堆栈溢出。

该计划

int main()
{
    int array[1000][1000];
    return 0;
}  

尝试在堆栈上分配一个巨大的数组 因为堆栈不足以处理此数组,所以数组分配溢出到不允许程序使用的内存部分。因此,程序崩溃了。


进一步阅读:The stack and the heap