Udostępnij za pośrednictwem


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