一、野指针与空指针要注意
(1)野指针
野指针是一个指向未知(undefine)的 , 不确定地方的指针.
"未知的,不确定的" , 指向的地方可能存在,可能不存在.
可能可以访问,也可能不可以访问.
对野指针的访问,会有后果?
可能可以访问,可能不可以访问(导致非法的内存访问).
非法的内存访问
不存在的地方,你去访问
存在但不能写,你去写
存在但不能读,你去读
后果 : 非法的内存访问,会导致 "segmentation fault段错误" , 系统把你的进程给kill掉.
1. int *p;
//定义了一个指针变量p , 你没有赋初始值,不代表p没有值,相反p一定会有一个值.
//意思是p一定会指向一个地方,但是这个值是多少,指向哪里,
//你是不知道的 undefine(未知的,未定义的)
(2)空指针
空指针是一个指向空(不存在的地方,NULL)的指针.
空指针不是野指针,因为空指针指向了一个 确定的地方(尽管这个地方不存在).
对空指针的访问,一定会导致 "非法的内存访问(段错误)"
int *p = NULL;//p 是空指针 *p //用*p 就会出现段错误.
标签:存在,指向,地方,访问,内存,指针 From: https://www.cnblogs.com/lzzcforever/p/17548758.html注意
不能对野指针进行操作, 这种行为是很危险. 宁可使用空指针,也不可使用野指针.
在定义指针的时候,可以让指针指向空的地方.