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;
}
自己可扩展其他类型,也可以写模板配合宏定义类型。比一些复杂的工具好用多了。升级版