涛2014/8/20的专栏

记录自己解决过的一些问题,一点点积累

最近遇到的一个数组越界的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 后来有一个数字突然变了,也不知道是什么原因,

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


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mt6246/article/details/49950657
文章标签: c语言 数组越界
个人分类: 技术
上一篇strlen的使用问题
下一篇VS2012使用strcpy_s的问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭