鱼C论坛

 找回密码
 立即注册
查看: 1845|回复: 5

[已解决]C\C++中如何判断一个指针是否分配了空间?

[复制链接]
发表于 2018-10-29 10:21:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,我的思路是用*取得指针所对应的空间是否为NULL,但是发现不同类型的变量还有结构体变量的结果各不相同。求解
最佳答案
2018-10-29 10:33:08
这个经常用的

既然这样,你首先初始化 指针的指向的地址为 NULL。这是必须的;
在用的过程中判断 指针的指向的地址是否为NULL即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-29 10:33:08 | 显示全部楼层    本楼为最佳答案   
这个经常用的

既然这样,你首先初始化 指针的指向的地址为 NULL。这是必须的;
在用的过程中判断 指针的指向的地址是否为NULL即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-29 10:36:07 | 显示全部楼层
本帖最后由 风扫地 于 2018-10-29 10:43 编辑

指针定义了不初始化就利用使用,野指针就出现了;
指针对应的空间已经被释放(动态空间被撤销,局部变量生命结束)而指针未被清NULL,悬空指针就出现了。

--------------------------------------------------------------------------------------------
回到楼楼的问题"C\C++中如何判断一个指针是否分配了空间? "
在做好了防野指针、防悬空指针以后就是判断指针是不是NULL:
是NULL,没有分配空间;
非NULL,分配了可用的安全的空间。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
人造人 + 5 + 5 + 3 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-29 10:50:33 | 显示全部楼层
空指针不能解引用哦,会退出程序的。
只能自己小心一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-29 11:40:24 | 显示全部楼层
风扫地 发表于 2018-10-29 10:36
指针定义了不初始化就利用使用,野指针就出现了;
指针对应的空间已经被释放(动态空间被撤销,局部变量生 ...

会C++的,据说都是大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-29 14:13:15 | 显示全部楼层

不是大神,没学过C++,他问的是C或者C++,我回答的是C语言里面的。
第一个条件满足自动短路了,C++可能有别的机制吧,只能留待真的大神回答了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 10:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表