带有std::shared_ptr的可视化泄漏检测器

Visual leak detector with std::shared_ptr

本文关键字:可视化 泄漏 检测器 std shared 带有 ptr      更新时间:2023-10-16

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

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

我是否必须调用其他东西,如删除器甚至shared_ptr::reset(),它是视觉泄漏检测器,告诉我一个错误的泄漏,或者它在shared_ptr实际被删除之前运行?

谢谢。

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

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

如果没有更多的代码,这很难说,但很明显,有一种可能性是您有一个循环。到处使用std::shared_ptr迟早会导致问题;对于特定情况,它是一个有用的工具,但它不能解决您的所有问题。