相关疑难解决方法(0)

Valgrind在std :: make_unique中显示内存泄漏

我正在使用Valgrind来检查内存泄漏.不幸的是我收到了Leak_DefinitelyLost警告.

附件是我的代码的简化版本,它重现了错误:

#include <iostream>
#include <vector>
#include <memory>
#include <unordered_map>

using namespace std;

class Base{
public:
    explicit Base(double a){
        a_ = a;
    }
    virtual void fun() = 0;

    protected:
        double a_;
};


class Derived_A : public Base{

    public:
        Derived_A(double a, vector<double> b, vector<double> c): Base(a), b_{b}, c_{c}{
        }
        void fun() override{
            cout << "Derived_A " << a_ << endl;
        }

    private:
        vector<double> b_;
        vector<double> c_;
};


class Derived_B : public Base{

    public:
        Derived_B(double a, double b, double c): …
Run Code Online (Sandbox Code Playgroud)

c++ memory-leaks undefined-behavior unique-ptr virtual-destructor

22
推荐指数
1
解决办法
1898
查看次数

删除如何工作?

可能重复:
C编程:free如何知道要释放多少?

怎么delete知道它有多少字节可以免费?我读到在new返回的实际指针地址之前有一些块,其中包含块地址详细信息.

这里的任何人都知道这个块有多少字节或者该块的格式是多少?

c++ memory-management

7
推荐指数
1
解决办法
4701
查看次数