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)
如果你使用vector<RStatus*>,那么你必须使用delete,否则你将有内存泄漏.
但是,如果您使用vector<RStatus>,则不必使用delete- 建议1.
1.如果你想使用指针,那么建议你应该使用智能指针,如std::unique_ptr,或std::shared_ptr.
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |