如果我用NULL初始化一个指针,那是错的吗?我面临什么问题?或者它只是糟糕的编程?
int a,b,*ptr;
ptr = NULL;
ptr=&a;
以上几行有问题吗?
答案 0 :(得分:3)
在您提供的代码中,NULL
的分配是无用的,因为从不在两个分配之间访问指针(即分配NULL
和分配&a
)。但是,还有其他情况需要将NULL
分配给指针:
free
,则需要在初始化时将NULL
指定给指针free
取消分配,但在一段时间内仍然可见时,您应该在释放指针后将指针设置为NULL
以避免悬空引用NULL
指定给指针,以便程序尽快失败。