次の方法で共有


C6383

警告 C6383: 要素数からバイト数への変換によるバッファー オーバーランです: 要素数は、パラメーター <数値> に対して <関数> への呼び出しで必要です。

この警告は、要素数が必要とされるときに非定数値のバイト数が渡されたことを示します。この警告は一般的に、変数が型の sizeof で乗算されたが、コード分析で要素数が必要であると示された場合に発生します。

使用例

この警告が発生するコード例を次に示します。

#include <string.h>

void f( wchar_t* t, wchar_t* s, int n )
{
  // code...
  wcsncpy (t, s, n*sizeof(wchar_t)); // warning 6383
  // code ...
}

この警告を修正するには、次のコードに示すように変数を型の sizeof で乗算しないようにします。

void f( wchar_t* t, wchar_t* s, int n )
{
  // code 
  wcsncpy (t, s, n);
  // code ...
}

次に示すコードでは、安全な文字列操作関数を使用してこの警告を修正しています。

void f(wchar_t* t, wchar_t* s, size_t n)
{
  // code...
  wcsncpy_s( t, sizeof(s), s, n );
  // code...
} 

参照

関連項目

strncpy_s、_strncpy_s_l、wcsncpy_s、_wcsncpy_s_l、_mbsncpy_s、_mbsncpy_s_l

sizeof 演算子