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);
}