我看到了删除指针amd使其在析构函数中为空的常见做法,即使没有内存分配给堆上的指针。考虑下面的C++代码:内存管理指针
dummy.h
class dummy
{
int* a;
}
dummy.cpp
dummy::dummy():a(NULL)
{ cout<<Inside Const"; }
dummy::~dummy()
{
if(a!=NULL)
{
delete a;
a = NULL;
}
}
bool func()
{
a = func1();
}
在上面的代码中,虽然存储器到一个未在堆上分配,即使如此,它被删除。它不应该导致内存泄漏?
你的问题有点含糊不清... –
@DavidHaim - 你在这里发现什么含糊不清?你不觉得你的评论含糊不清吗? –
在析构函数中使指针为NULL的常见做法?做什么的? – juanchopanza