递归调用的次数受到程序堆栈大小的限制,以下代码可以进行测试。
void TestRecur()
{
int a[1024]; //在栈上分配
static int count = 0;
cout << count << " " << flush;
count++;
if(count < 1000)
{
__try
{
TestRecur();
}
__except(1)
{
cout << "/nerror code: " << _exception_code();
exit(1);
}
}
}
int main()
{
TestRecur();
}
VisualStudio默认的栈空间是1M,可以更改默认栈空间:
项目-》属性-》配置属性-》链接器-》系统-》堆栈保留大小