簡體   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