野指针与空指针

一、野指针与空指针要注意

(1)野指针

野指针是一个指向未知(undefine)的 , 不确定地方的指针.

"未知的,不确定的" , 指向的地方可能存在,可能不存在.

可能可以访问,也可能不可以访问.

对野指针的访问,会有后果?

可能可以访问,可能不可以访问(导致非法的内存访问).

非法的内存访问

不存在的地方,你去访问

存在但不能写,你去写

存在但不能读,你去读

后果 : 非法的内存访问,会导致 "segmentation fault段错误" , 系统把你的进程给kill掉.

1. int *p;
	//定义了一个指针变量p , 你没有赋初始值,不代表p没有值,相反p一定会有一个值.
	//意思是p一定会指向一个地方,但是这个值是多少,指向哪里,
	//你是不知道的  undefine(未知的,未定义的)

(2)空指针

空指针是一个指向空(不存在的地方,NULL)的指针.

空指针不是野指针,因为空指针指向了一个 确定的地方(尽管这个地方不存在).

对空指针的访问,一定会导致 "非法的内存访问(段错误)"

int *p = NULL;//p 是空指针

*p  //用*p 就会出现段错误.

注意

不能对野指针进行操作, 这种行为是很危险. 宁可使用空指针,也不可使用野指针.

在定义指针的时候,可以让指针指向空的地方.

posted @   风恬月淡时  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
点击右上角即可分享
微信分享提示