中级会员
 
- 积分
- 295
- 金钱
- 295
- 注册时间
- 2021-2-5
- 在线时间
- 135 小时
|
这个帖子和我的上一个贴子有联系,都和设备升级后宕机有关系,问题是这样的,sscanf(databuff, "%s", deviceinfo.version); 这个databuff是一个字符数组,但是没有以\0结尾,都知道%s是从指定地址开始,直到\0结束,如果这里没有这个\0,实际上会发生什么,我的分析是这样的:首先就算越界操作也应该只影响ram空间,不会对flash空间造成影响,但是实际上,从我的现在遇到的情况来看,似乎就是把flash的内容改变了,我查了一下,这种越界的操作可能会导致内存被修改,但是实际上sscanf不应该只是把databuff的值解析到后面指定的变量中吗,就算越界,也是一直在找\0,怎么会导致内存被修改了。这些是我个人的分析,希望有大佬指教一下
|
|