次の方法で共有


警告 C6383

要素数をバイト数に変換したためのバッファー オーバーラン: 呼び出しのパラメーター *parameter_name* に対して要素数が必要です *function_name*

この警告は、要素数が必要な場合に、非定数バイト数が渡されていることを示します。

解説

通常、この警告は、変数に型が乗算 sizeof されるときに発生します。 この問題により、バッファーに保持できるバイト数よりも多くのバイトがコピーされる可能性があります。

コード分析名: ELEMENTS_TO_BYTES

この警告が発生するコード例を次に示します。 wcsncpyn * 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);
}

関連項目