cppcheck 报告“缓冲区访问越界”
Posted
技术标签:
【中文标题】cppcheck 报告“缓冲区访问越界”【英文标题】:"The buffer is accessed out of bounds" is reported by cppcheck 【发布时间】:2014-09-12 13:01:35 【问题描述】:静态代码分析工具cppcheck在下面的代码中报了一个严重的错误:我不知道是什么问题。
#define NUM_UPDATE_COUNT 3
#define MAX_NUM_CH_1LINE 27
wchar_t m_cCnt_Buf[NUM_UPDATE_COUNT][MAX_NUM_CH_1LINE];
Init_PushPt();
memset((char *)&m_cCnt_Buf[1], 0x20, sizeof(m_cCnt_Buf[1])); /* Buffer is accessed out of bounds: m_cCnt_Buf */
memset((char *)&m_cCnt_Buf[2], 0x20, sizeof(m_cCnt_Buf[2])); /* Buffer is accessed out of bounds: m_cCnt_Buf */
m_cCnt_Buf[1][2] = '0';
m_cCnt_Buf[2][8] = '0';
上面的代码似乎没有任何问题。任何想法为什么这些被捡起以及如何解决这个问题?提前谢谢你。
【问题讨论】:
【参考方案1】:我是一名 Cppcheck 开发人员。
有趣。对我来说它看起来像一个FP。但是我无法使用 Cppcheck 重现此 FP。
【讨论】:
您可以报告您在 Cppcheck 问题跟踪器 (trac.cppcheck.net) 中看到的任何 Cppcheck-FP,修复 FP 报告是高优先级。报告中应包含重现 FP 的最小代码示例。以上是关于cppcheck 报告“缓冲区访问越界”的主要内容,如果未能解决你的问题,请参考以下文章