这可不一样呀!!!!

来源:互联网 发布:软件开发人员外包公司 编辑:程序博客网 时间:2024/04/27 22:49

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

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);

失之毫厘,差之千里呀。

原创粉丝点击