Udostępnij za pośrednictwem


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