VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1368|回复: 8

结构指针问题

[复制链接]

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-19 17:00:01 | 显示全部楼层 |阅读模式
看到一个程序写了下面的代码:
lpBuf是一个结构的指针, 他对这个结构指针进行了下面的转化
(BYTE*)lpBuf   

这样转换会不会丢失数据,如果数据丢失了,利用这个指针还能正确访问结构里面的成员么?谢谢
回复

使用道具 举报

0

主题

73

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-6-24 16:00:02 | 显示全部楼层
数据当然不会丢失,等于把从那个地址开始的内容按新的方式解释而已。
回复

使用道具 举报

2

主题

54

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-6-24 16:45:01 | 显示全部楼层
看怎么说了,如果知道数据的尺寸的话也可以
遍历取得
这样数据那就不能说会丢失,访问成员的话,直接解释成成员那就不可能了,需再次的转换
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-6-24 19:15:01 | 显示全部楼层
数据不会丢失,指针转换和数据无关
回复

使用道具 举报

0

主题

49

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-6-26 09:00:01 | 显示全部楼层
这样转换会不会丢失数据,如果数据丢失了,利用这个指针还能正确访问结构里面的成员么?谢谢
-------------------------------------------------------
要访问其成员需重新转换成原来的结构指针
回复

使用道具 举报

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-6-27 01:00:01 | 显示全部楼层
to 珈蓝易拉罐

数据当然不会丢失,等于把从那个地址开始的内容按新的方式解释而已。
--------------------------------------------------------------
不是很明白你的解释,能在解释一下么?
回复

使用道具 举报

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-6-27 07:30:01 | 显示全部楼层
如果访问的时候再转换回来,那这样的转换有什么意义,或者说能得到什么样的好处呢???
回复

使用道具 举报

2

主题

54

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-6-27 19:30:01 | 显示全部楼层
看具体的用途
有的时候为实现一个通用指针,经常转换成byte *和char *
访问数据
回复

使用道具 举报

0

主题

49

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-6-29 12:30:01 | 显示全部楼层
比如为实现对结构内的数据按字节存取,就可以选择将指向该结构的指针转为byte* ,然后用一个for存取所有数据,这在将数据存入数据库时可能会用到。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

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