C6303
ostrzeżenie C6303: niezgodność ciągu formatu: ciąg wieloznakowy przekazany jako parametr <number> podczas gdy w wywołaniu <function> wymagany jest ciąg znakowy.
To ostrzeżenie wskazuje na to, że ciąg formatu określa, że wymagany jest ciąg znakowy.Jednak przekazany został ciąg wieloznakowy.Defekt ten może spowodować awarię lub uszkodzenie w jakiejś formie.
Przykład
Poniższy przykładowy kod generuje to ostrzeżenie:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf("%s", buff);
}
Aby poprawić to ostrzeżenie, użyj %ls tak jak pokazano w poniższym przykładowym kodzie:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf("%ls", buff);
}
Następujący przykładowy kod używa bezpiecznej funkcji do wykonywania operacji na ciągach printf_s, aby poprawić to ostrzeżenie:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf_s("%ls",buff);
}