递归调用的次数受到程序堆栈大小的限制,以下代码可以进行测试。
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,可以更改默认栈空间:
项目-》属性-》配置属性-》链接器-》系统-》堆栈保留大小
本文介绍了一种测试递归调用限制的方法,并提供了一个具体的示例代码。该代码通过不断递归调用来测试编译器或运行环境的栈空间大小,默认情况下Visual Studio的栈空间为1M,可以通过配置进行修改。
189

被折叠的 条评论
为什么被折叠?



