堆和栈到底有什么区别?
这个问题往往在面试中会被问到。
栈和堆的从实现上来说,本质是一样的。
栈的大小可以在编译时,或者线创建时指定。
有空再补全。
先贴个程序:
通过进程管理器可以看到,在没有输入i之前,程序占用的内存是很小的,几百k,在输入i之后,程序占用内存不断上升,最终栈溢出,程序出错。
#include <iostream>
using namespace std;
int f(int i)
{
//cout<<i<<endl;
return f(i + 1);
}
int main()
{
int i;
cin>>i;
f(i);
return 0;
}