C6302
경고 C6302: 형식 문자열이 일치하지 않습니다. 문자열이 매개 변수 <number>(으)로 전달되었습니다. <function>에 대한 호출에는 와이드 문자열이 필요합니다.
이 경고는 형식 문자열이 와이드 문자열이 필요하다고 지정하고 있으나문자열이 전달되고 있음을 나타냅니다.이 오류로 인해 일부 형식에 충돌이나 손상이 발생할 수 있습니다.
예제
다음 샘플 코드에서는 wprintf 함수에 문자열이 전달되기 때문에 이 경고가 생성됩니다.
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf(L"%s", buff);
}
다음 샘플 코드에서는 %hs를 사용하여 wprintf 함수에 싱글바이트 문자열을 지정합니다.
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf(L"%hs", buff);
}
다음 샘플 코드에서는 안전한 문자열 조작 함수 wprintf_s를 사용하여 이 경고를 해결합니다.
#include<stdio.h>
void f()
{
char buff[5] = "hi";
wprintf_s(L"%hs", buff);
}