这可不一样呀!!!!

   前段时间,再调试项目的时候,发现出了莫名奇妙的问题,后来经过深入的跟踪,才发现了。这里期望大家注意一下。

typedef  struct  strMsg{

......

} t_strMsg; 

 

MsgGet(char * MsgBuf)

{

ASSERT(!MsgBuf);

t_strMsg * tempMsg = (t_strMsg *)MsgBuf  + sizeof DWORD;

...

}

我想,有的人已经看出了问题的所在了吧。就在于t_strMsg * tempMsg = (t_strMsg *)MsgBuf  + sizeof DWORD;这句话上,他违背了你的意愿,他可不是偏移四个字节,而是偏移了4*sizeof(t_strMsg );要想让他如你所愿应该是如下:t_strMsg * tempMsg = (t_strMsg *)(MsgBuf  + sizeof DWORD);

失之毫厘,差之千里呀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值