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'时?别的地方?你*已经*使用调试器来定位崩溃发生在*你的*代码中? –