在推功能内存泄漏

问题描述

这是我的初步实施,不存在内存泄漏检测当我打电话推功能

Class PQ
    {
                …
    Struct NodeData
    {
                …
                std::vector<double> nscores; 
                …          
    }
    std::set<NodeData> NodeSet;//NodeSet is a class property defined as a set of NodeData

    …
    Push()
    {           …
           double data[] = {1,2,3}; 
           NodeSet node;
           for (i=0;i<3;i++) { 
               node.nscores.push_back(data[i]);
           } 
           NodeSet.insert(std::move(node)); 
                            …
    }

…..
}

我在上面的代码修改,以在推功能动态分配存储器,如下。当我记忆测试单独的推送功能,它正在泄漏内存。这是一个有效的内存泄漏。

Class PQ
    {
                …
    Struct NodeData
    {
                …
                unique_ptr<double[]> nscores; 
                …          
    }
    std::set<NodeData> NodeSet;//NodeSet is a class property defined as a set of NodeData

    …
    Push()
    {           …
           NodeSet node;
           node.nscores =std::make_unique<double[]>(3);
           NodeSet.insert(std::move(node)); 
                            …
    }

…..
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)