1
我有麻煩得到一段代碼工作,我有一個代碼使用本地緩衝區的功能, 當本地緩衝區初始化,然後我得到異常,但只是宣佈沒有任何初始化它工作正常,我不明白爲什麼。 我也增加了鏈接器中的堆棧大小,但似乎這不是問題。整個緩衝區initalization導致異常
注意:我正在編譯支持整個緩衝區初始化的c99/c11編譯選項。
#define UDS_SRV_CFG2_MAX 20
NCS_PRI_FCT tUdsStatus UDS_RdbiManagement(u16 *puwLen, u8 *aubUdsData) {
tUdsStatus eUdsStatus;
u8 ubTableCfgIdx[UDS_SRV_CFG2_MAX] = { 0 }; // this leads to exception
//...
}
NCS_PRI_FCT tUdsStatus UDS_RdbiManagement(u16 *puwLen, u8 *aubUdsData) {
tUdsStatus eUdsStatus;
u8 ubTableCfgIdx[UDS_SRV_CFG2_MAX]; // code works fine here
// ...
}
你不能「編譯與c99/c11編譯選項」。你要麼建立在C99模式下,要麼*你建立在C11模式下。你們不能兼而有之,它們是互相排斥的。 –
你是什麼意思「整個緩衝區初始化」?在C(C89,C99,C11)中沒有部分初始化。對象可以是未初始化的,也可以是全部(全部工作字節)初始化的。 – pmg
並且*你在哪裏得到異常?當調用'UDS_RdbiManagement'時?別的地方?你*已經*使用調試器來定位崩潰發生在*你的*代碼中? –