标题:C语言指针转换如何判断成功
只看楼主
awebing
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-5-4
结帖率:0
已结贴  问题点数:19 回复次数:3 
C语言指针转换如何判断成功
已知一个地址addr1,然后经过这个地址经过运算得到另一个地址addr2
Object *a   = (Object *)addr2;
这里addr2可能不是这个Object类型的结构体, 也可能是Object类型
疑惑点:怎么判断a是否转换成功 也就是add2这个地址能否转换成Object类型指针,如何判断呢
搜索更多相关主题的帖子: Object C语言 结构体 如何 
2017-05-04 21:26
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:7 
类型转换也会失败的吗?
既然不会,那么何必判断?

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-04 21:58
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:7 
除非是空指针~addr2的数据类型在编译的时候就可以确定的~除非中途更改过数据类型~~~所以在更改数据类型之前是可以判断其数据类型的~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-04 22:32
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
指针用来表达数据块的地址和大小。
如果addr2是有效的,a肯定也是有效的,a相对addr2来说,地址是不变的,但表达的数据块大小可能会变。
2017-05-04 23:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476703-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.195673 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved