求助,c++结构体 内存有点问题??

csdn网速很慢 2013-01-13 08:58:09
struct updateobj
{
unsigned char startmark =0xff;
type t=0x05;
unsigned char sceneid=0x22;
unsigned int objid=0x11111111;
attrtype attrtypes[UPDATEATTRLEN] 0x02,0x01......;
};
[0x0] 0xff '' char
[0x1] 0x05 '' char
[0x2] 0x22 char
[0x3] 0x00 char
[0x4] 0x11 char
[0x5] 0x11 char
[0x6] 0x11 char
[0x7] 0x11 char
[0x8] 0x02 '' char
[0x9] 0x01 '' char
[0xa] 0x01 '' char
[0xb] 0x01 '' char
[0xc] 0x01 '' char
[0xd] 0x01 '' char
[0xe] 0x01 '' char
[0xf] 0x01 '' char
上边为什么在0x3处 多了个0x00; 紧急求助啊 。这块快搞疯我了。
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn网速很慢 2013-01-13
  • 打赏
  • 举报
回复
嗯 是了就是这个对齐的原因 我加了一个字节ok了
liangminghui 2013-01-13
  • 打赏
  • 举报
回复
你用什么编译器啊,vs吗?看看是不是结构体对齐问题,在项目属性中c++编译设置中将结构体以1个字节对齐看看
ri_aje 2013-01-13
  • 打赏
  • 举报
回复
看起来像内存对齐用的.
图灵狗 2013-01-13
  • 打赏
  • 举报
回复
没有见过这样的写法,猜测多了个0x00是内存对齐的缘故,你可以在结构体前面加上#param pack(1)试试。

64,680

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧