「バッファ オーバーラン」C6386 警告の回避
-
26-09-2019 - |
質問
私のコードでは配列を使用しています 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 warning( push )
#pragma warning( disable : 6386 )
// Some code
#pragma warning( pop )
アドバイスどおり ここ.
所属していません StackOverflow