C6064
Avertissement C6064 : argument entier manquant pour <fonction> correspondant au spécificateur de conversion <numéro>
Cet avertissement indique qu'un nombre insuffisant d'arguments a été fourni pour correspondre à une chaîne de format, et l'un des arguments manquants est un entier. Ce défaut peut générer une sortie incorrecte.
Exemple
Le code suivant génère cet avertissement car un nombre d'arguments incorrect a été utilisé dans l'appel à sprintf, et l'argument manquant était un entier :
#include <string.h>
void f( )
{
char buff[15];
char *string="Hello, World";
sprintf(buff,"%s %d", string);
}
Pour corriger cet avertissement, spécifiez les arguments manquants comme indiqué dans le code suivant :
#include <string.h>
void f( )
{
char buff[15];
char *string = "Hello, World";
sprintf(buff,"%s %d",string, strlen(string));
}
Le code suivant utilise la fonction de manipulation de chaîne sécurisée, sprintf_s, pour corriger cet avertissement :
#include <string.h>
void f( )
{
char buff[15];
char *string="Hello World";
sprintf_s(buff,sizeof(buff),"%s %d", string, strlen(string));
}