Condividi tramite


C6303

avviso C6303: stringa di formato non corrispondente: stringa di caratteri di tipo "wide" passata come parametro <numero> mentre nella chiamata a <funzione> è richiesta una stringa di caratteri

L'avviso indica che nella stringa di formato è specificato che è necessaria una stringa di caratteri. È stata tuttavia passata una stringa di caratteri di tipo "wide". Questo errore può causare una qualche forma di arresto anomalo o danneggiamento.

Esempio

Il seguente codice di esempio genera questo avviso:

#include <stdio.h>

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

  printf("%s", buff);
}

Per risolvere il problema, utilizzare %ls come illustrato nell'esempio di codice seguente:

#include <stdio.h>

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

  printf("%ls", buff);
}

Per risolvere il problema, nell'esempio di codice riportato di seguito viene utilizzata la funzione protetta di modifica delle stringhe printf_s:

#include <stdio.h>

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

  printf_s("%ls",buff);
}