1、对于函数的参数,若有常量,且函数内部定义指针指向该常量函数,则不可对该指针进行数值加减,防止数组越界。
例:
void func(const int e){
int * p = &e;
p++; //该句产生错误。Out-of-bounds access (ARRAY_VS_SINGLETON)
}
2、打印地址时,不可使用printf("0x%x", &aa),打印地址,%x只适用32位的,不适用64位的,应改为printf("%p", &aa),打印地址信息。
错误代码信息:Invalid type in argument to printf format specifier (PRINTF_ARGS)invalid_type: Argument &i2cs[current_id].regs->tok_wdata1 to format specifier %x was expected to have type unsigned int but has type uint32_t *. [Note: The source code implementation of the function has been overridden by a builtin model.]