C6302

Avertissement C6302 : Incompatibilité de chaîne de format : une chaîne de caractères est passée comme paramètre <numéro> lorsqu'une chaîne à caractères larges est requise dans l'appel à <fonction>

Cet avertissement indique que la chaîne de format spécifie qu'une chaîne à caractères larges est requise. Toutefois, une chaîne de caractères est passée. Ce défaut risque de provoquer un blocage ou une altération, sous une forme quelconque.

Exemple

L'exemple de code suivant génère cet avertissement car une chaîne de caractères est passée à la fonction wprintf :

#include<stdio.h>

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

  wprintf(L"%s", buff);
}

L'exemple de code suivant utilise %hs pour spécifier une chaîne de caractères codés sur un seul octet avec la fonction wprintf :

#include<stdio.h>

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

  wprintf(L"%hs", buff);
}

L'exemple de code suivant utilise la fonction de manipulation de chaîne sécurisée wprintf_s pour corriger cet avertissement :

#include<stdio.h>

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

  wprintf_s(L"%hs", buff);
}