Compartir a través de


C6303

advertencia C6303: No coincide la cadena de formato: se pasó la cadena de caracteres anchos como parámetro <número> cuando se requiere la cadena de caracteres para llamar a <función>

Esta advertencia indica que la cadena de formato especifica que se requiere una cadena de caracteres.Sin embargo, se pasa una cadena de caracteres anchos.Es probable que este defecto provoque algún tipo de bloqueo o de daño.

Ejemplo

El siguiente ejemplo de código genera esta advertencia:

#include <stdio.h>

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

  printf("%s", buff);
}

Para corregir esta advertencia, utilice %ls como se muestra en el código de ejemplo siguiente:

#include <stdio.h>

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

  printf("%ls", buff);
}

El código de ejemplo siguiente utiliza funciones de manipulación de cadenas de caracteres seguras printf_s para corregir esta advertencia:

#include <stdio.h>

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

  printf_s("%ls",buff);
}