gpt4 book ai didi

c++ - 将指针 push_back 指向 vector 的正确方法

转载 作者:太空宇宙 更新时间:2023-11-04 14:52:17 25 4
gpt4 key购买 nike

由于类的构造函数使用指针 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com