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版权协议,转载请附上原文出处链接和本声明。