C6303C6303

avertissement C6303 : incompatibilité de chaîne de format : passé comme paramètre de chaîne à caractères larges <nombre > lorsque la chaîne de caractères est requise dans l’appel à <fonction >warning C6303: format string mismatch: wide character string passed as parameter <number> when character string is required in call to <function>

Cet avertissement indique que la chaîne de format Spécifie qu’une chaîne de caractères est requise.This warning indicates that the format string specifies that a character string is required. Toutefois, une chaîne à caractères larges est passée.However, a wide character string is being passed. Ce problème est susceptible de provoquer un blocage ou la corruption d’une forme.This defect is likely to cause a crash or corruption of some form.

ExempleExample

L’exemple de code suivant génère cet avertissement :The following sample code generates this warning:

#include <stdio.h>

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

  printf("%s", buff);
}

Pour corriger cet avertissement, utilisez %ls comme indiqué dans l’exemple de code suivant :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);
}

L’exemple de code suivant utilise la fonction de manipulation de chaîne sécurisée printf_s pour corriger cet avertissement :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);
}