c - 将 NULL 分配给指针是否是错误的编程?

标签 c pointers null

如果我用 NULL 初始化一个指针,这是错误的吗?我面临什么问题?还是仅仅是糟糕的编程?

int a,b,*ptr;
ptr = NULL;
ptr=&a;

上面几行有没有问题??

最佳答案

在您提供了 NULL 分配的代码中是无用的,因为在两次赋值之间永远不会访问指针(即分配 NULL&a 的分配)。但是赋值NULL还有其他情况指向一个指针是非常可取的:

  • 如果有条件地将内存位置分配给指针,然后将指针传递给 free最后,您需要分配 NULL指向初始化时的指针
  • 当使用 free 释放指针时, 但在一段时间内仍然可见,您应该将指针设置为 NULL在释放它以避免悬挂引用之后
  • 当出现指针失效后访问的情况时,需要赋值NULL指向指针,以便您的程序尽快失败。

关于c - 将 NULL 分配给指针是否是错误的编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24715218/

相关文章:

c++ - 在许多不同的类中调用相同的函数

apache-spark - Spark 数据帧空值计数

c - 构建 USB 外设

C 编程编译问题

我可以在需要 int* 的地方传递 NULL 吗?

c++ - C++程序中的堆栈溢出错误

sql-server - SQL 检查变量中的空值

JQuery/Mootools 偏移量返回 null

c - 使用 C 预处理器宏进行多级调试

c - fork(),多个 child 的问题