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);
}