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