Udostępnij za pośrednictwem


C6064

Ostrzeżenie C6064: brakujący całkowity argument <function> odpowiadający specyfikatorowi konwersji <number>

To ostrzeżenie wskazuje, że za mało argumentów zostało dostarczonych, aby odpowiadać ciągowi formatującemu i jeden z brakujących argumentów jest liczbą całkowitą.Wada ta może spowodować niepoprawne dane wyjściowe.

Przykład

Poniższy kod generuje to ostrzeżenie, ponieważ wykorzystano nieprawidłową liczbę argumentów w wywołaniu sprintf i brakuje argumentu będącego liczbą całkowitą:

#include <string.h>
void f( )
{
  char buff[15];
  char *string="Hello, World";
  
  sprintf(buff,"%s %d", string);
}

Aby poprawić to ostrzeżenie, należy określić brakujące argumenty, jak pokazano w poniższym kodzie:

#include <string.h>
void f( )
{
  char buff[15];
  char *string = "Hello, World";

  sprintf(buff,"%s %d",string, strlen(string));
}

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

#include <string.h>
void f( )
{
  char buff[15];
  char *string="Hello World";

  sprintf_s(buff,sizeof(buff),"%s %d", string, strlen(string));
}

Zobacz też

Informacje

sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l