由于类的构造函数使用指针 vector ,我有一个错误:LeakSanitizer:检测到内存泄漏
。
这里我只是我的代码。
问题.h
class Problem {
protected:
std::vector<const Object*> pointer_vector;
public:
// Constructor
Problem();
};
问题.cc
Problem::Problem() {
this->pointer_vector.push_back(new Object(parameter_list_1));
this->pointer_vector.push_back(new Object(parameter_list_2));
// here I just want to push back the pointer into the vector
}
因为我的代码仍然有效。但正如我提到的,我得到了 ERROR: LeakSanitizer: detected memory leaks
。
我想我在 push_back
上做错了,我想问一下正确的方法。
问题是我想问一些通用的方法来解决这个问题。喜欢
我如何使用 原始指针
改进此代码。
因为我认为我们有很好的方法来解决这个问题,而且没有找到可能的重复项。如果您需要详细的错误报告,我会添加它们。
谢谢!
最佳答案
不要想太多。
似乎你的对象中的所有东西都分配在那里,所以使用智能指针:
std::vector<std::unique_ptr<Object>> pointer_vector;
关于c++ - 将指针 push_back 指向 vector 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53469378/