关闭

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

标签: c语言数组越界
178人阅读 评论(0) 收藏 举报
分类:

关于二维数组的问题,之前在我代码中有如下这样一段,(//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 后来有一个数字突然变了,也不知道是什么原因,

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17111次
    • 积分:390
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:11篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论