在我的公司中,有一个编码规则,在释放任何内存后,将变量重置为NULL.例如 ...
void some_func ()
{
int *nPtr;
nPtr = malloc (100);
free (nPtr);
nPtr = NULL;
return;
}
Run Code Online (Sandbox Code Playgroud)
我觉得,在上面显示的代码中,设置为NULL没有任何意义.或者我错过了什么?
如果在这种情况下没有任何意义,我将采用"质量团队"来删除此编码规则.请指教.
我一直在学习C语言,并跟随Yashavant P. Kanetkar的"Let Us C".
指针章节中有一行说我们只能比较指向同一数组中元素的指针,即小于(<)和大于(>)指针.
为什么比较任意指针无效?
考虑这个例子.
#include <stdio.h>
int main() {
int a = 5;
int b = a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有人告诉我在上面的代码中,首先被创建的存储器为整数的块和分配的值5,然后一个指向该块.然后,b也指向包含值5的同一块内存.
所以我的问题是,如果a是一个整数变量,它也指向某个东西,那么它与指针有什么不同?
如果这个问题太基础,请原谅我.但我需要知道.