C6302
advertencia C6302: No coincide la cadena de formato: se pasó la cadena de caracteres como parámetro <número> cuando se requiere la cadena de caracteres anchos para llamar a <función>
Esta advertencia indica que la cadena de formato especifica que se requiere una cadena de caracteres anchos.Sin embargo, se pasa una cadena de caracteres.Es probable que este defecto provoque algún tipo de bloqueo o de daño.
Ejemplo
El código de ejemplo siguiente genera esta advertencia porque se pasa una cadena de caracteres a la función wprintf:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf(L"%s", buff);
}
El código de ejemplo siguiente utiliza %hs para especificar una cadena de caracteres de un solo byte con la función wprintf:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf(L"%hs", buff);
}
El código de ejemplo siguiente utiliza la función de manipulación de cadenas de caracteres segura wprintf_s para corregir esta advertencia:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf_s(L"%hs", buff);
}