栈空间分配

来源:互联网 发布:北京国家会计学院知乎 编辑:程序博客网 时间:2024/04/25 08:22

一般而言,在程序中使用new或者malloc的时候,系统会使用堆空间——这是用户级别的内存分配,需要在程序结束的时候手动收回。而在函数中分配数组空间或是建立简单的变量,系统会使用栈空间,当函数结束时系统自动收回。具体的内存位置如下图所示。

 

 

这里未初始化的数据指的是全局变量静态变量等等。

 

所以当递归函数中开int a[50][50]这样的数组时,要首先配置程序的栈空间大小,否则就会出现栈空间不够的错误。

 

在项目->属性中找到配置属性->链接器->系统,然后把堆栈保留大小设为10M就行了。默认情况下VC2005分配1M大小的栈空间。


原创粉丝点击