簡體   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