社区
嵌入开发(WinCE)
帖子详情
Datatype misalignment问题
ccaiji
2017-07-21 04:55:28
int warntp=*((int *)(&buf[14]));
在板子上跑的一个程序
在一个数据包中提取数据,编译通过,运行处理数据时报错 Datatype misalignment
应该是字符对齐的原因,要怎样解决
...全文
150
1
打赏
收藏
Datatype misalignment问题
int warntp=*((int *)(&buf[14])); 在板子上跑的一个程序 在一个数据包中提取数据,编译通过,运行处理数据时报错 Datatype misalignment 应该是字符对齐的原因,要怎样解决
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ccaiji
2017-07-21
打赏
举报
回复
这个错误最糟心的是同样格式的语句,都不是int字节数的整数倍,有的报错有的没有
WINCE ARM
Data
type
mis
alignment
问题
在arm处理器上,运行程序会遇到
Data
type
mis
alignment
问题
而crash,而同一代码在x86 win32环境上编译后运行良好;
其实不管是x86还是arm都会遇到
Data
type
mis
alignment
问题
,比如d3dx用到sse指令优化的D3DXMATRIX时,需要这个变量16字节对齐,否则可能会crash。
同一
问题
在arm上会更明显,因为arm的硬件处理可能没有pc机cpu这么强悍,针对arm的编译器可能也没这么强悍,这就需要我们写代码时候更健壮,考
data
type
mis
alignment
错误
data
type
mis
alignment
错误是一个隐晦的错误,因为你在编译的过程中看不到的,但是在DEBUG的时候,执行到某些地方就跳出这个错误了。
data
type
mis
alignment
错误怎么引起的呢,我查了一些网上的资料,总的来说就是位对齐引起的错误。类型转换,结构体成员的长度一般会引起这些错误。 char *tempstr1=(char *)malloc(sizeof
data
type
mis
alignment
我的原因是内存溢出太严重,大多数是字节对齐
问题
wince5.0, eVC4.0 出现一个新
问题
:
data
type
mis
alignment
这个
问题
似乎是内存泄露的太厉害,不够用了,因为我注释掉GetBMP
Data
(其中的new出现这个
问题
)后,imageprocess的malloc又出现同样的
问题
,而且是malloc了几次后。 所以,要先解决内存泄露的
问题
,还好,发现了一些调试工具,performance monitor和heap w
Data
type
mis
alignment
http://blog.csdn.net/lqk1985/archive/2008/10/23/3129976.aspx 对于读取数据流时(如网络或文件)要特别注意。比如PBYTE p
Data
;//指向接收到的数据流int * pi = p
Data
+ 这次接收到数据流的大小 - 4;//指向接收到数据流的最后4位,可能客户端发过来的这个数据流最后4位是int,那样就是
#pragma pack(n)
data
type
mis
alignment
#pragma pack(n) (2006-11-06 17:38:21) 分类:技术什么是对齐,以及为什么要对齐:现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个
嵌入开发(WinCE)
19,500
社区成员
41,567
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章