在我的代码中,我使用了一个包含xyz
10 个对象的数组。当我尝试使用这样的无符号 int 索引访问数组元素时:xyz[level]
,我收到“缓冲区溢出”警告。从逻辑上讲,我很确定该级别不会超过 10。如何避免此警告?
问问题
3423 次
2 回答
10
我可能正在教我的祖母在这里吸鸡蛋,但请记住“级别不会超过 10”对于大小为 10 的数组是错误的:
char a[10];
a[10] = '\0'; // Bug, and "Buffer Overrun" warning.
于 2010-06-11T10:52:04.483 回答
2
你真的确定吗?直到现在我才收到这个警告。所以,仔细检查。
无论如何,您可以使用
#pragma warning( disable: 6386 )
预处理指令。我通常将其推送并弹出到“pragma stack”
#pragma warning( push )
#pragma warning( disable : 6386 )
// Some code
#pragma warning( pop )
正如这里所建议的那样。
于 2010-06-11T10:53:29.907 回答