当前位置: 代码迷 >> 综合 >> c++ 内存泄漏排查简单完美
  详细解决方案

c++ 内存泄漏排查简单完美

热度:14   发布时间:2024-01-29 03:40:29.0
CallocBuffer cb;
char* str=cb.callocChar(2048,__FUNCTION__);
cb.freeChar();//这里注释掉会打印内存没有释放
/*------------------------------.h-------------------------------*/
class CallocBuffer {
public:CallocBuffer();virtual ~CallocBuffer();char* CallocBuffer::callocChar(int size,char*function);void CallocBuffer::freeChar();private:bool isFree;char* s_str = NULL;char*fun = NULL;
};/*------------------------------.cpp-------------------------------*/
#include "CallocBuffer.h"
#include <iostream>CallocBuffer::CallocBuffer() :
isFree(false)
{
}CallocBuffer::~CallocBuffer()
{if (!isFree)printf("%s no free\n", fun);
}char* CallocBuffer::callocChar(int size, char* function)
{fun = function;s_str = (char*)calloc(size, sizeof(char));return s_str;
}void CallocBuffer::freeChar()
{free(s_str);isFree = true;
}

自己可扩展其他类型,也可以写模板配合宏定义类型。比一些复杂的工具好用多了。

  相关解决方案