C6303C6303

Advertencia C6303: error de coincidencia de cadena de formato: pasado como parámetro de cadena de caracteres anchos <número > cuando se requiere la cadena de caracteres en la llamada a <función >warning C6303: format string mismatch: wide character string passed as parameter <number> when character string is required in call to <function>

Esta advertencia indica que la cadena de formato especifica que se requiere una cadena de caracteres.This warning indicates that the format string specifies that a character string is required. Sin embargo, se pasa una cadena de caracteres anchos.However, a wide character string is being passed. Este defecto es probable que provoque un bloqueo o los daños de alguna forma.This defect is likely to cause a crash or corruption of some form.

EjemploExample

El siguiente ejemplo de código genera esta advertencia:The following sample code generates this warning:

#include <stdio.h>

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

  printf("%s", buff);
}

Para corregir esta advertencia, utilice %ls tal como se muestra en el código de ejemplo siguiente:To correct this warning, use %ls as shown in the following sample code:

#include <stdio.h>

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

  printf("%ls", buff);
}

El código de ejemplo siguiente utiliza la función de manipulación de cadena segura printf_s para corregir esta advertencia:The following sample code uses safe string manipulation function printf_s to correct this warning:

#include <stdio.h>

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

  printf_s("%ls",buff);
}