我遇到了一個有線問題,這是一個大型商業專案,所以我不能把原始代碼放在這里。但邏輯是這樣的:
struct sample_t
{
int inta;
int * p_intb;
};
sample_t sample ={0};
sample.inta = 0;
sample.p_intb = NULL; // crashed, why?
由于指標操作而崩潰,但inta沒有問題。但是,如果我memset(&sample.p_intb, 0, 4)用來替換上面的相等,它就起作用了。
這是什么原因?如何解決這個問題呢?
這是代碼的截圖
uj5u.com熱心網友回復:
這個問題是由指標起始地址引起的(必須是4的倍數)我不確定確切的原因,但應該與芯片(ecu)有關。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/432688.html
上一篇:`at`僅在我添加新作業時運行
