在我的代码中,我使用一个数组 xyz 共 10 个对象。当我尝试使用 unsigned int 索引访问数组的元素时,如下所示: xyz[level], ,我得到 '缓冲区溢出' 警告。按道理来说,我很确定等级不会超过10级。如何避免这个警告?

有帮助吗?

解决方案

我可能正在教我的祖母在这里吸鸡蛋,但请记住,对于大小为 10 的数组,“级别不会超过 10”是错误的:

char a[10];
a[10] = '\0';  // Bug, and "Buffer Overrun" warning.

其他提示

你是 真的 当然?直到现在我才收到这个警告。所以,请仔细检查。

无论如何,您可以使用

#pragma warning( disable: 6386 )

预处理指令。我通常将其推送并弹出到“pragma stack”

#pragma warning( push )
#pragma warning( disable : 6386 )
// Some code
#pragma warning( pop )

按照建议 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top