小编Pas*_*sha的帖子

这个递归函数如何工作?

可能是一个非常基本的问题,但我只是坚持下去.我试图运行以下递归函数:

   //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)

c c++ recursion

0
推荐指数
1
解决办法
121
查看次数

内存释放另一个类里面的类

我试图了解如果一个类创建另一个类,如何回馈内存.

我有

 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函数中执行代码时,它就崩溃了.怎么了?我在这里有点迷失.谢谢.

c++ memory pointers allocation reference

0
推荐指数
1
解决办法
43
查看次数

标签 统计

c++ ×2

allocation ×1

c ×1

memory ×1

pointers ×1

recursion ×1

reference ×1