1. 释放一个不是自己分配的指针,导致系统异常死机的问题
这个指针不是通过 malloc 得到的,而是指向一个字符串的 第几位。那么直接释放这个指针,导致系统异常死机,因为有指向,这个指针不是空。但是指向的这个地方不是通过malloc得到的。
uint8_t * values = NULL;
values = (char *)atParamStr(pParam->params[6], &iResult);
if(values)
free(values);
代码如上,此问题出在AT指令的解析里面,values 指向 AT指令的一个参数,直接释放,导致异常死机。