繁体   English   中英

为什么此代码在HPUX上崩溃?

[英]Why does this code crash on HPUX?

我写了一个小程序,它类似于我在项目中面临的问题。 问题是,为什么在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;
}

&cmd[10]不能正确对齐以存储32位整数–因为cmd每个元素长一个字节,并且malloc返回的地址正确对齐了“任何类型”,因此cmd的第11个元素不会被4整除的地址

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM