次の方法で共有


C6302

警告 C6302: 書式文字列の不一致です: 文字の文字列がパラメーター <数値> として渡されました。<関数> への呼び出しには、ワイド文字の文字列が必要です

この警告は、書式指定文字列によってワイド文字列が必要であることが指定されていることを示します。 ただし、文字列が渡されています。 この問題は、何らかのクラッシュや破損の原因となる可能性があります。

使用例

次に示すサンプル コードでは、文字列が wprintf 関数に渡されるため、この警告が発生します。

#include<stdio.h>

void f()
{
  char buff[5] = "hi";

  wprintf(L"%s", buff);
}

次のサンプル コードでは、%hs を使用して、wprintf 関数で 1 バイト文字列を指定しています。

#include<stdio.h>

void f()
{
  char buff[5] = "hi";

  wprintf(L"%hs", buff);
}

次に示すサンプル コードでは、この警告を解決するために安全な文字列操作関数 wprintf_s を使用しています。

#include<stdio.h>

void f()
{
  char buff[5] = "hi";

  wprintf_s(L"%hs", buff);
}