在我的公司中,有一个编码规则,在释放任何内存后,将变量重置为NULL.例如 ...
void some_func ()
{
int *nPtr;
nPtr = malloc (100);
free (nPtr);
nPtr = NULL;
return;
}
Run Code Online (Sandbox Code Playgroud)
我觉得,在上面显示的代码中,设置为NULL没有任何意义.或者我错过了什么?
如果在这种情况下没有任何意义,我将采用"质量团队"来删除此编码规则.请指教.
有没有什么好的理由(除了"宏是邪恶的",也许)不使用以下宏?
#define DELETE( ptr ) \
if (ptr != NULL) \
{ \
delete ptr; \
ptr = NULL; \
}
#define DELETE_TABLE( ptr ) \
if (ptr != NULL) \
{ \
delete[] ptr; \
ptr = NULL; \
}
Run Code Online (Sandbox Code Playgroud)