可能是一个非常基本的问题,但我只是坚持下去.我试图运行以下递归函数:
//If a is 0 then return b, if b is 0 then return a,
//otherwise return myRec(a/2, 2*b) + myRec(2*a, b/2)
Run Code Online (Sandbox Code Playgroud)
但它只是陷入无限循环.任何人都可以帮助我运行该代码并解释该函数究竟是如何工作的吗?我建立了各种递归功能,没有任何问题,但这只是在我脑海中钻了一个洞.谢谢.
这是我试图做的:
#include<iostream>
int myRec(int a, int b){
if (a==0){
return b;
}
if (b==0){
return a;
}
else return myRec(a/2, 2*b) + myRec(2*a, b/2);
}
int main()
{
if (46 == myRec(100, 100)) {
std::cout << "It works!";
}
}
Run Code Online (Sandbox Code Playgroud) 我试图了解如果一个类创建另一个类,如何回馈内存.
我有
Clas A;
Run Code Online (Sandbox Code Playgroud)
然后另一个为A类分配内存的类:
class B{
private:
A* data;
public:
// Allocating new memory
B (){
A* data = new A();
//giving memory back
~B(){
delete data; };
};
Run Code Online (Sandbox Code Playgroud)
当我在main函数中执行代码时,它就崩溃了.怎么了?我在这里有点迷失.谢谢.