Windows下C++程序默认的栈空间是2M(VC++2008编译器默认1M,这个值是可以在编译器中设置的。
随手写了一段栈溢出的代码:
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int a[1024][256]={0}; //在栈上分配,大小为1M,运行时栈溢出挂掉!
return 0;
}
最简单的修改方法,声明动态数组,在堆上面分配。如果对性能过于敏感,可以用内存池。