繁体   English   中英

避免“缓冲区溢出” C6386警告

[英]Avoiding 'Buffer Overrun' C6386 warning

在我的代码中,我正在使用10个对象的数组xyz 当我尝试使用无符号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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM