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