tom*_*ies 0 c++ memory-leaks vector visual-studio-2010
我写了一些简单的接口,我想创建一个全局向量,包含实现接口的类的对象.所以我做了以下事情:
vector<SomeInterface*> ary;
Run Code Online (Sandbox Code Playgroud)
我注释掉整个代码从开:无效main()和矢量元; 现在使用_CrtDumpMemoryLeaks(); 在Visual Studio 2010中,我得到1个块泄露.
怎么解决?
问候.
您需要删除分配的内存.您有两种选择:
for (auto *p : ary) delete p;
Run Code Online (Sandbox Code Playgroud)
要么
vector<std::unique_ptr<SomeInterface>> ary;
Run Code Online (Sandbox Code Playgroud)
第二个更安全,因为它会在你摧毁矢量时自动释放内存.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |