C语言中的野指针是什么?

C语言中的野指针是什么?

野指针指的是哪些指向位置不正确(随机)的指针

为什么会存在野指针?

 指针变量没有初始化导致:

#include<stdio.h>
#include<stdlib.h>

int main(){
  int value = 10;
  //int *p;          //当我没有给这个指针初始值的时候,这个指针有可能指向任意一个地址这时候
  int *p = NULL;     //所以正确的方式是将指针设为NULL指针
  //int *p = &value  //或者将指针设定到某一特定地址
}

为了避免这种情况,我们应该在定义指针时设定初始值。

 free()释放后没有赋值NULL导致:

当我们调用free()来释放指针指向地址的内存,free()不会返回任何值,也不会清理掉指针,所以这个时候指针还是有效的,这个指针还是会可以被使用,所以我们需要在释放指针后,将指针赋值为NULL,让其变成空指针。


版权声明:本文为weixin_38838143原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。