递归出现死循环导致内存溢出问题

在正常情况下递归有退出条件不会出现死循环问题。但是有可能出现数据错误,导致程序一直无法达到退出条件从而一直调用递归造成死循环。这种情况下,假如数据错误无法避免,那么怎么才能避免死循环的产生呢?

在退出条件之外添加错误判断语句,对错误进行判断,出现错误时即可跳出

对数据进行校验,如果数据错误,可以抛出异常,从而推出循环。

1、添加错误判断语句,对错误进行判断
2、对可能出现错误的地方进行中间输出

两种方法:
1. 处理数据之前校验数据
2. 对递归层级进行计数,限制递归最大层级

加一个判断语句,如果数据错误的话就跳出循环,如果是多重嵌套循环的话可以试试outterloop

从根源上解决对错误数据进行判断,都知道数据会错肯定要判断。限制递归深度,解决溢出问题。

额 感觉为什么要用递归退出呢
我一般数据保存好 然后暴力退出

加最后的判断语句也就是递归的退出提条件

建议 你先检查逻辑是否有问题,或者睡一觉 把思路重新梳理一下,我感觉你这里应该是逻辑问题,如果找不出逻辑问题,可以一个一个printf,检查程序实际运行和自己的逻辑是否一致,第二个人感觉就是设置判断条件,随时跳出递归,但是这个会造成程序的臃肿!祝愿你解决问题

https://www.cnblogs.com/flywang/p/5518423.html这个网站有助于解决你的问题