C6064
upozornění C6064: chybějící argument celé číslo <function> odpovídající převod specifikátor <number>
Toto upozornění znamená, že nedostatek argumentů jsou poskytovány odpovídající řetězec formátu a jeden z argumentů chybí je celé číslo.Tato vada může způsobit nesprávný výstup.
Příklad
Následující kód vygeneruje tato upozornění, protože nesprávný počet argumentů, které byly použity při volání sprintf a chybějící argument byl celé číslo:
#include <string.h>
void f( )
{
char buff[15];
char *string="Hello, World";
sprintf(buff,"%s %d", string);
}
Chcete-li opravit toto upozornění zadejte chybí argumenty, jak je ukázáno v následujícím kódu:
#include <string.h>
void f( )
{
char buff[15];
char *string = "Hello, World";
sprintf(buff,"%s %d",string, strlen(string));
}
Následující kód používá funkce bezpečné řetězce manipulace, sprintf_s opravit toto upozornění:
#include <string.h>
void f( )
{
char buff[15];
char *string="Hello World";
sprintf_s(buff,sizeof(buff),"%s %d", string, strlen(string));
}