C6302
Note
This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
warning C6302: format string mismatch: character string passed as parameter <number> when wide character string is required in call to <function>
This warning indicates that the format string specifies that a wide character string is required. However, a character string is being passed. This defect is likely to cause a crash or a corruption of some form.
Example
The following sample code generates this warning because a character string is passed to wprintf
function:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf(L"%s", buff);
}
The following sample code uses %hs
to specify a single-byte character string with wprintf
function:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf(L"%hs", buff);
}
The following sample code uses safe string manipulation function wprintf_s
to correct this warning:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf_s(L"%hs", buff);
}