最近遇到的一个数组越界的BUG

关于二维数组的问题,之前在我代码中有如下这样一段,(//CMD:DS:1234567890abcd:1234567890:5:0016:44:BLE A IM 20:73:6a:18:ec:e8,11:22:33:44:55:66)当解析到 e8,11 时会导致 dest 越界,但是由于我每次 cmd_line ->Cmdpos += 3;,这样刚好解析到的MAC也是对的,所以当时没有发现。

char dest[2] = {'\0'};

Ds600_GetCharByDelimit(&(cmd_line->character[cmd_line->Cmdpos]), (char *)dest, MAX_SERVICE_MSG_LEN);

cmd_line->Cmdpos += 3;         

上面我在一个循环中解析数据,但是解析时导致数组越界,但是由于 cmd_line->Cmdpos += 3; 所以调试时发现解析到的 20 后来有一个数字突然变了,也不知道是什么原因,

后来才发现是数组越界导致的。


你可能感兴趣的:(技术)