我遇到了有关递归的堆栈问题
I have got a stack problem concerning recursion
#include <iostream>
using namespace std;
int f(int x) {
int erg;
if (x >= 1000) {
erg = x - 3;
}
else {
f(f(x + 5));
}
return erg;
}
int main() {
cout << "Result: " << f(84) << endl;
return 0;
}
所以我得到错误线程 1:EXC_BAD_ACCESS(代码 = 2,地址 = 0x7ffeef3ffff8(
您正在定义递归函数,但没有正确定义退出条件。 我确定的(相互关联的(问题是:
- 如果采用
else
子句,则返回未初始化的erg
。 - 您没有对
else
条款中f
的结果执行任何操作。您是否打算将其分配给erg
? - 为什么在这一点上还要
erg
?您可以直接从if
和else
子句返回。
相关文章:
- 算法问题:查找从堆栈中弹出的所有序列
- 堆栈问题(平衡表达式问题集)
- 使用指针计算堆栈问题的大 O 表示法
- 使用泛型类型推送到堆栈时出现问题
- 我的堆栈和库存清单程序的结构有什么问题?
- C++ - 面试问题中的堆栈上的对象
- 在我自己的堆栈中实现top的问题
- 创建堆栈时出现问题!(街机游戏)
- 我遇到了有关递归的堆栈问题
- 关于 std::堆栈推送的分段错误的问题
- C++堆栈内存管理问题
- 在使用 In Order 遍历成员函数时引发异常(堆栈溢出)时出现问题
- 我正在尝试使用回溯来解决 N queen 问题,但在编译时它会给出运行时错误(动态堆栈缓冲区溢出)
- 数组问题:变量周围的堆栈'arr'已损坏
- 关于在C 中实现堆栈的问题
- 未定义对调用堆栈库的引用出现问题
- 我的堆栈中的弹出方法有什么问题?
- 调试堆栈损坏问题
- 我的矩阵堆栈实现(OpenGL ES 2.0)有什么问题
- 使用快速英特尔随机生成器(SSE2)会因堆栈问题而失败..已损坏