我写了一个小程序,类似于我在项目中面临的问题。问题是,为什么它在HP-UX平台上运行时会崩溃?
错误:
si_code: 1- BUS_ADRALN -地址对齐无效
代码:
int main()
{
uint8_t *cmd ;
cmd = (uint8_t *) malloc(77);
uint32_t gen = 20;
*(uint32_t*)&cmd[10] = gen; /* crash here */
return 0;
}发布于 2015-02-17 14:15:07
对于存储32位整数,&cmd[10]没有正确对齐-因为cmd的每个元素都是一个字节长,并且malloc返回的地址对于“任何类型”都是正确对齐的,所以cmd的第11个元素不会位于可被4整除的地址。
https://stackoverflow.com/questions/28555576
复制相似问题