C6064
Aviso C6064: argumento de inteiro ausente para <function> correspondente para o especificador de conversão <number>
Este aviso indica que os argumentos insuficientes estão sendo fornecidos para coincidir com uma seqüência de caracteres de formato e um dos argumentos ausentes é um número inteiro. Esse defeito pode causar a saída incorreta.
Exemplo
O código a seguir gera este aviso porque um número incorreto de argumentos foram usado na chamada para sprintf e o argumento ausente era um número inteiro:
#include <string.h>
void f( )
{
char buff[15];
char *string="Hello, World";
sprintf(buff,"%s %d", string);
}
Para corrigir esse aviso, especifique argumentos ausentes, conforme mostrado no código a seguir:
#include <string.h>
void f( )
{
char buff[15];
char *string = "Hello, World";
sprintf(buff,"%s %d",string, strlen(string));
}
O código a seguir usa a função de manipulação de cadeia de caracteres seguras, sprintf_s para corrigir este aviso:
#include <string.h>
void f( )
{
char buff[15];
char *string="Hello World";
sprintf_s(buff,sizeof(buff),"%s %d", string, strlen(string));
}