467
3517
1万
资深工程师
ayb_ice 发表于 2020-8-26 15:09 就是越界了而已
使用特权
sonicll 发表于 2020-8-26 15:10 因为 sprintf(s, "%-10.2f", ShiftValue0),10位长度2位小数,ShiftValue0的整数部分很大的话,这个格式化 ...
222
4万
技术总监
比神乐 发表于 2020-8-26 15:16 整数部分没有那么大,最多5位数
ayb_ice 发表于 2020-8-26 15:21 就算5位整数,还有符号位,小数点,2位小数,还有结束符0,越界了
1.jpg (297.34 KB )
下载附件
2020-8-26 15:31 上传
比神乐 发表于 2020-8-26 15:32 看,整数部分1位,是0. 0x0e是小数点。
ayb_ice 发表于 2020-8-26 15:35 你自己都指定了输出宽度,10位宽度,后面会自动补的
596
5万
版主
比神乐 发表于 2020-8-26 15:06 谢谢!我把s[8]改为s[18]就好了,可是我不懂为什么就好了。 你给我讲讲
ayb_ice 发表于 2020-8-26 15:35 你自己都指定了输出宽度,10位宽度,后面会自动补的 先把缓冲区搞长点,看调用sprintf后缓冲区的内容就清 ...
香水城 发表于 2020-8-26 15:40 明明数组越界了 还说没越界。可爱~
2.jpg (434.03 KB )
2020-8-26 15:50 上传
3.jpg (69.3 KB )
2020-8-26 15:54 上传
香水城 发表于 2020-8-26 16:40 还有 就是注意堆栈溢出方面的问题
3
37
108
中级技术员
a13528442080 发表于 2020-8-27 09:33 解决了吗
比神乐 发表于 2020-8-26 15:54 我百度搜索的。 m表示打印宽度,可是打印出来没有那么宽。
ayb_ice 发表于 2020-8-27 09:44 这样也溢出了,只是没有死机而已,不是溢出就一定会死机的 前面已经説了,你先把缓冲区设置大些,然后调 ...
54
3745
发表回复 本版积分规则 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号