gpt4 book ai didi

c - 释放后将变量设置为 NULL

转载 作者:太空狗 更新时间:2023-10-29 16:14:19 24 4
gpt4 key购买 nike

在我的公司有一个编码规则说,释放任何内存后,将变量重置为NULL。例如……

void some_func () 
{
int *nPtr;

nPtr = malloc (100);

free (nPtr);
nPtr = NULL;

return;
}

我觉得,像上面代码这样的情况,设置为NULL是没有任何意义的。还是我遗漏了什么?

如果在这种情况下没有意义,我将与“质量团队”一起删除此编码规则。请指教。

最佳答案

将未使用的指针设置为 NULL 是一种防御方式,可以防止悬空指针错误。如果在释放后访问悬空指针,您可能会读取或覆盖随机内存。如果访问空指针,您会在大多数系统上立即崩溃,并立即告诉您错误是什么。

对于局部变量来说,如果指针被释放后“明显”不再被访问,可能有点没有意义,所以这种风格更适合成员数据和全局变量。即使对于局部变量,如果函数在释放内存后继续执行,也可能是一种很好的方法。

要完成样式,您还应该在为指针分配真正的指针值之前将指针初始化为 NULL。

关于c - 释放后将变量设置为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1025589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com