c++ 递归调用最多几层?
今天用递归写一道题目,感觉思路还可以,可就是没结果,可能是递归调用的太多,超出了visualc++6.0的限制。那么在visualc++6.0里递归调用最多几层?...
今天用递归写一道题目,感觉思路还可以,可就是没结果,可能是递归调用的太多,超出了visual c++6.0的限制。
那么在visual c++6.0里 递归调用最多几层? 展开
那么在visual c++6.0里 递归调用最多几层? 展开
6个回答
展开全部
理论上来说是无限层,但由于内存有限,所以太多层会造成内存溢出甚至死机
visual c++6.0对层数是没有限制的
你看看是不是哪里写了个死循环,或者递归调用无法返回了?再或者就是你的算法非常复杂,你等的时间不够长?我就编写过这样的,看上去是死机,但10秒后算出来了……
visual c++6.0对层数是没有限制的
你看看是不是哪里写了个死循环,或者递归调用无法返回了?再或者就是你的算法非常复杂,你等的时间不够长?我就编写过这样的,看上去是死机,但10秒后算出来了……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
堆栈用完 编译器分给程序的堆栈空间为1mb
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void get(int i,FILE *file)
{
fprintf(file,"%d\n",i);
i++;
get(i,file);
}
main()
{
FILE *file;
int i=1;
file=fopen("x.txt","w+");
get(i,file);
fclose(file);
}
这是我用来研究你的问题的函数,实验出来可以递归10726次,第10726次的时候出现错误了,这应该和电脑内存有关系的,你可以自己试试看,方法就是运行程序以后在运行的文件夹里面寻找x.txt这个文件,看看最后那个数字是多少,也就是有多少次递归
void get(int i,FILE *file)
{
fprintf(file,"%d\n",i);
i++;
get(i,file);
}
main()
{
FILE *file;
int i=1;
file=fopen("x.txt","w+");
get(i,file);
fclose(file);
}
这是我用来研究你的问题的函数,实验出来可以递归10726次,第10726次的时候出现错误了,这应该和电脑内存有关系的,你可以自己试试看,方法就是运行程序以后在运行的文件夹里面寻找x.txt这个文件,看看最后那个数字是多少,也就是有多少次递归
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好是用3~4层,太多对程序的简洁性不好,也容易犯错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能你弄了个死循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询