在编程过程中经常需要为一个临时指针分配内存,而由于一时的疏附忘记了释放这块内存导致内存泄露。
下面这个类将实现内存自动释放。
class CBufferFree
{
public:
CBufferFree(LPBYTE& lpBuf):m_lpBufferFree(lpBuf)
{
}
~CBufferFree()
{
if(m_lpBufferFree)
{
delete []m_lpBufferFree;
m_lpBufferFree = NULL;
}
}
protected:
LPBYTE& m_lpBufferFree;
};
应用:
void test(void)
{
char* pchar = new char[1000];
LPBYTE lpByte = (LPBYTE)pchar;
CBufferFree autoFree(lpByte);
////////////////////////////////////////////
/// do some thing
////////////////////////////////////////////
////////////////////////////////////////////
// 当该方法调用结束时,将自动的释放掉new出来的内存
/////////////////////////////////////////////
}
评论