Поделиться через


C6303

Обновлен: Ноябрь 2007

C6303

Предупреждение C6303. Несоответствие строк формата: в качестве параметра <номер> передана строка из широких символов; при вызове <функция> требуется символьная строка

Данное предупреждение означает, что строка формата указывает на необходимость строки однобайтовых знаков. Однако передана строка двухбайтовых знаков. Данная ошибка, скорее всего, приведет к сбою или к какому-либо повреждению.

Пример

Это предупреждение создается в следующем примере кода:

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