带有std :: shared_ptr的可视检漏仪

时间:2014-08-14 15:27:06

标签: c++ c++11 memory-leaks shared-ptr visual-leak-detector

我对shared_ptr比较陌生。我正在使用可视化泄漏检测器,当我将以下代码作为内存泄漏时,我在运行时结束时收到错误:

std::shared_ptr<the_type>(new the_type(the_parameter))

我是否必须调用其他类似删除器甚至是shared_ptr::reset()的东西,它是否会在shared_ptr实际被删除之前告诉我漏洞或者它正在运行? / p>

感谢。

注意:我使用的是vld 2.2.3,VS2012,Windows 7/8

2 个答案:

答案 0 :(得分:1)

以您展示的方式构建共享指针没有任何问题。看起来泄漏探测器报告假泄漏或您正在以错误的方式使用它。作为旁注,请考虑使用std::make_shared而不是显式new和共享指针构造函数 - 它通常更有效,更安全。

答案 1 :(得分:0)

如果没有更多代码,很难说,但有一个明显的可能性就是你有一个循环。只是在任何地方使用std::shared_ptr迟早会导致问题;对于特定情况,它是一个有用的工具,但它无法解决您的所有问题。