6

无论我尝试什么,我似乎都无法让 VLD 捕获任何内存泄漏。任何想法为什么?

这里也是输出的片段:

Visual Leak Detector Version 2.4RC2 installed. 
The thread 0x5748 has exited with code 0 (0x0).
The thread 0x2c70 has exited with code 0 (0x0).
The thread 0x3c98 has exited with code 0 (0x0).
No memory leaks detected.
Visual Leak Detector is now exiting.
The program '[24988] ConsoleApplication2.exe' has exited with code 0 (0x0).


#include <vld.h>

#include <iostream>
using namespace std;

class Car{
    public:
        Car() {}

        Car(string model,int year, string color) {
            this->model = model; this->color, this->year = year;
        }

        string getModel() {
            return this->model;
        }

        void setModel(string m) {
            this->model = model;
        }

        string getColor() {
            return this->color;
        }

        void setColor(string color) {
            this->color = color;
        }

        void paint()
        {
            setColor("white");
        }

    private:
        string model;
        int year;
        string color;
};


int _tmain(int argc, _TCHAR* argv[]){
    Car c("bmw", 2000, "red");
    c.paint();
    cout << c.getColor().c_str();

    for (int i = 0; i < 10; i++)
        int *ptr = new int(10);

    Car *c2 = new Car("benz", 2010, "yellow");

    return 0;
 }

我错过了什么?

4

1 回答 1

4

它在 Visual Studio 2013 Ultimate 下工作

您必须在控制台模式下执行程序(进入项目的调试目录)

在下面,您会看到结果的图片,但控制台显示了许多泄漏,我们在这里看不到所有泄漏

我将包含和库路径添加到项目设置中

  1. C:\Program Files (x86)\Visual Leak Detector\include
  2. C:\Program Files (x86)\Visual Leak Detector\lib\win32
  3. C:\Program Files (x86)\Visual Leak Detector\lib\win64

在此处输入图像描述

如您所见,有 13 个内存泄漏。

于 2015-10-17T04:44:38.303 回答