Udostępnij za pośrednictwem


C6274

Ostrzeżenie C6274: przekazano jako parametr liczbę, która nie jest wartością znakową <number> gdy jest wymagany znak, w wywołaniu <function>

To ostrzeżenie wskazuje, że ciąg formatujący określa, że znak jest wymagany (na przykład specyfikacja %c lub %C), ale liczba niecałkowita taka jak wartość float, ciąg znaków lub struktura zostały przekazane.Ta wada może spowodować niepoprawne dane wyjściowe.

Przykład

Poniższy kod generuje to ostrzeżenie:

#include <stdio.h>
#include <string.h>

void f(char str[])
{
   char buff[5];
    
   sprintf(buff,"%c",str);
}

Aby poprawić to ostrzeżenie, należy użyć następującego kodu:

#include <stdio.h>
#include <string.h>

void f(char str[])
{
   char buff[5];
 
   sprintf(buff,"%c",str[0]);
}

Następujący kod używa bezpiecznej funkcji manipulacji ciągiem sprintf_s, aby poprawić to ostrzeżenie:

#include <stdio.h>
#include <string.h>

void f(char str[])
{
   char buff[5];
  
   sprintf_s(buff,5,"%c", str[0]);
}