相关疑难解决方法(0)

ptr为NULL的free(ptr)是否会损坏内存?

从理论上讲,我可以这么说

free(ptr);
free(ptr); 
Run Code Online (Sandbox Code Playgroud)

是一个内存损坏,因为我们释放已经释放的内存.

但是如果

free(ptr);
ptr=NULL;
free(ptr); 
Run Code Online (Sandbox Code Playgroud)

由于操作系统将以不确定的方式运行,我无法对此进行实际的理论分析.无论我在做什么,这种记忆是否会腐败?

释放空指针有效吗?

c free null pointers

106
推荐指数
7
解决办法
7万
查看次数

在调用free之前检查NULL

许多C代码释放指针调用:

if (p)
  free(p);
Run Code Online (Sandbox Code Playgroud)

但为什么?我认为C标准说在free给定NULL指针的情况下函数不会做任何事情.那为什么要另外明确检查?

c

22
推荐指数
3
解决办法
1万
查看次数

标签 统计

c ×2

free ×1

null ×1

pointers ×1