我在遞歸C++程序中分配和釋放內存時遇到問題。因此,如果不使用自動內存管理解決方案,我不知道是否有人可以幫我解決我遇到的內存泄漏問題。遞歸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);
}
,你可以看到在遞歸函數分配的內存泄漏,但我不確定在哪裏可以根據遞歸的性質釋放這些內存?
「請糾正我犯任何錯誤或簡化」 - 你需要做的問題編輯爲我們做到這一點。 – 2009-01-07 22:23:12