字节对齐导致的地址计算错误
2017-05-16 11:08
323 查看
在计算如下结构体:
typedef struct {
s1 a;
s2 b;
s3 c;
s4 d;
s1 e;
s2 f;
}root 的地址结果如下:
a,s1,8,364
b,s2,4,372
c,s3,4,376
d,s4,2002,380
e,s1,8,2384
f,s2,4,2392
d变量的长度计算不是预期值,涉及到字节对齐,解决办法:用下一个变量的地址减去相邻变量的地址,而不是用 sizeof获得长度
typedef struct {
s1 a;
s2 b;
s3 c;
s4 d;
s1 e;
s2 f;
}root 的地址结果如下:
a,s1,8,364
b,s2,4,372
c,s3,4,376
d,s4,2002,380
e,s1,8,2384
f,s2,4,2392
d变量的长度计算不是预期值,涉及到字节对齐,解决办法:用下一个变量的地址减去相邻变量的地址,而不是用 sizeof获得长度
相关文章推荐
- 由于内存字节对齐导致的硬件错误
- linux的nand中计算ECC的时候buf地址不4字节对齐的问题
- 计算字节对齐的地址 ((sizeof(n)+sizeof(int)-1)&~(sizeof(int)-1))
- 内存的字节对齐及结构体的sizeof计算
- duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
- ios平台上一个由字节对齐问题导致的crash
- 关于C语言字节对齐之结构体 共用体占用字节数的快速计算方法总结
- 逻辑地址与物理地址转换 和 字节对齐
- (原创)Linux下一定要4字节地址对齐操作
- C++字节对齐与结构体大小计算
- 字节对齐计算
- 内存的字节对齐及结构体的sizeof计算
- 让地址4字节对齐的办法
- NDK 编译armebai-v7a的非4字节对齐crash Fatal signal 7 (SIGSEGV) 错误解决
- 计算结构体大小(字节对齐)
- duilib 修复padding属性导致其他控件自动计算宽高度错误的bug和导致自己宽高度错误的bug
- C_语法概念_sizeof()功能:计算数据空间的字节数以及字节对齐问题
- 【C++】继承类之sizeof计算_字节对齐【总结篇】
- 字节对齐--对sizeof计算产生影响
- 客服端调用自定义宿主的WCF报错"没有终结点在侦听可以接受消息的http://localhost:8085/mex。这通常是由于不正确的地址或者 SOAP 操作导致的错误"的解决方案。