我在递归 C++ 程序中分配和释放内存时遇到问题。因此,如果不使用自动内存管理解决方案,我想知道是否有人可以帮助我解决我遇到的内存泄漏问题。
下面的代码基本上解释了这个问题(虽然这是一个人为的例子,请纠正我所做的任何错误或简化)。
保存数字值的数字类:
class Number {
public:
Number() { value = 1; };
Number& operator + (const Number& n1) const {
Number result = value + n1.value;
return result;
};
int value;
};
执行递归的两个函数:
Number& recurse(const Number& v1) {
Number* result = new Number();
Number one = Number();
*result = *result + recurse(one);
return *result;
}
int main(...) {
Number answer = Number();
answer = recurse(result);
}
如您所见,递归函数中分配的内存已泄漏,但我不确定根据递归的性质我可以从哪里释放这些内存?