不需要在vector <StructA*>中删除struct memory?

Sco*_*合理论 3 c++ vector visual-c++

我看到一些代码如下,但我没有看到任何删除声明,是否有任何内存泄漏问题?

struct RStatus
{
    int fid;
    int status;
};

void Foo()
{
    vector<RStatus*> rsVec;

    RStatus* rs = null;
    rs = new RStatus(); // memory allocated here!
    rs->fid = 0
    rs->status = 0;
    rsVec.push_back(rs);

}
Run Code Online (Sandbox Code Playgroud)

Naw*_*waz 5

如果你使用vector<RStatus*>,那么你必须使用delete,否则你将有内存泄漏.

但是,如果您使用vector<RStatus>,则不必使用delete- 建议1.


1.如果你想使用指针,那么建议你应该使用智能指针,如std::unique_ptr,或std::shared_ptr.