다음을 통해 공유


C6303

경고 C6303: 형식 문자열이 일치하지 않습니다. 와이드 문자열이 매개 변수 <number>(으)로 전달되었습니다. <function>에 대한 호출에는 문자열이 필요합니다.

이 경고는 형식 문자열이 문자열이 필요하다고 지정하고 있으나와이드 문자열이 전달되고 있음을 나타냅니다.이 오류로 인해 일부 형식에 충돌이나 손상이 발생할 수 있습니다.

예제

다음 샘플 코드에서는 이 경고를 발생시킵니다.

#include <stdio.h>

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

  printf("%s", buff);
}

이 경고를 해결하려면 다음 샘플 코드에서처럼 %ls를 사용합니다.

#include <stdio.h>

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

  printf("%ls", buff);
}

다음 샘플 코드에서는 안전한 문자열 조작 함수 printf_s를 사용하여 이 경고를 해결합니다.

#include <stdio.h>

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

  printf_s("%ls",buff);
}