C6302
ostrzeżenie C6302: niezgodność ciągu formatu: ciąg znakowy przekazany jako parametr <number> podczas gdy wywołaniu <function> wymagany jest ciąg wieloznakowy.
To ostrzeżenie wskazuje na to, że ciąg formatu określa, że wymagany jest ciąg wieloznakowy.Jednak przekazany został ciąg znakowy.Defekt ten może spowodować awarię lub uszkodzenie w jakiejś formie.
Przykład
Następujący przykładowy kod generuje to ostrzeżenie, ponieważ ciąg znakowy jest przekazywany do funkcji wprintf:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf(L"%s", buff);
}
Następujący przykładowy kod używa %hs, aby określić ciąg znaków jedno bajtowych z funkcji wprintf:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf(L"%hs", buff);
}
Następujący przykładowy kod używa bezpiecznej funkcji do wykonywania operacji na ciągach wprintf_s, aby poprawić to ostrzeżenie:
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf_s(L"%hs", buff);
}