警告 C6383
要素数をバイト数に変換したためのバッファー オーバーラン: 呼び出しのパラメーター
*parameter_name*
に対して要素数が必要です*function_name*
この警告は、要素数が必要な場合に、非定数バイト数が渡されていることを示します。
解説
通常、この警告は、変数に型が乗算 sizeof
されるときに発生します。 この問題により、バッファーに保持できるバイト数よりも多くのバイトがコピーされる可能性があります。
コード分析名: ELEMENTS_TO_BYTES
例
この警告が発生するコード例を次に示します。 wcsncpy
n * sizeof(wchar_t)
では文字をコピーできますが、バッファーは文字のみを保持n
できます。 wcsncpy
これは安全でない関数であり、C28719 ごとに使用しないでください。 安全でないバリアントは、この警告を示す目的でのみ使用されます。
void f(wchar_t* t, wchar_t* s, int n)
{
wcsncpy (t, s, n*sizeof(wchar_t));
}
次のコードでは、バイト数の代わりに要素数を送信することで、この警告を修正します。
void f( wchar_t* t, wchar_t* s, int n )
{
wcsncpy (t, s, n);
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示