#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)
答案 0 :(得分:3)
您正在定义递归函数,但未正确定义退出条件。 我确定的(相互关联的)问题是:
erg
子句,则else
会返回未初始化的值。f
子句中else
的结果,您没有做任何事情。您是否打算将其分配给erg
?erg
?您可以直接从if
和else
子句中返回。