在程序中增加相应的内存检测工具
#define CRTDBG MAP ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#ifdef DEBUG
#ifndef DBGNEW
#define DBG_NEW new (_NORMAL_BLOCK,_FILE_LINE_)
#define new DBG NEW
#endif
#endif
_CrtDumpMemoryLeaks();
当没有释放内存时候:
#define _CRT_SECURE_NO_WARNINGS
#define CRTDBG MAP ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include<iostream>
#include<stdio.h>
#include<Windows.h>
#ifdef DEBUG
#ifndef DBGNEW
#define DBG_NEW new (_NORMAL_BLOCK,_FILE_LINE_)
#define new DBG NEW
#endif
#endif
using namespace std;
void A_live() {
int* p = new int[1024];
//挥霍
p[0] = 0;
//申请的内存必须释放
//delete[] p;
}
int main() {
for (int i = 0; i < 5; i++)
{
A_live();
Sleep(50);
_CrtDumpMemoryLeaks();
system("pause");
return 0;
}
}
增加了delete时候:文章来源:https://www.toymoban.com/news/detail-823073.html
#define _CRT_SECURE_NO_WARNINGS
#define CRTDBG MAP ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include<iostream>
#include<stdio.h>
#include<Windows.h>
#ifdef DEBUG
#ifndef DBGNEW
#define DBG_NEW new (_NORMAL_BLOCK,_FILE_LINE_)
#define new DBG NEW
#endif
#endif
using namespace std;
void A_live() {
int* p = new int[1024];
//挥霍
p[0] = 0;
//申请的内存必须释放
delete[] p;
}
int main() {
for (int i = 0; i < 5; i++)
{
A_live();
Sleep(50);
_CrtDumpMemoryLeaks();
system("pause");
return 0;
}
}
文章来源地址https://www.toymoban.com/news/detail-823073.html
到了这里,关于C++内存泄漏检测工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!