C6064
avviso C6064: manca l'argomento integer per <funzione> corrispondente all'identificatore di conversione <numero>
L'avviso indica che non vengono forniti argomenti sufficienti per creare una corrispondenza con una stringa di formato e uno degli argomenti mancanti è un integer. L'errore può provocare un output non corretto.
Esempio
Il codice riportato di seguito genera questo avviso in quanto è stato utilizzato un numero di argomenti non corretto nella chiamata a sprintf e l'argomento mancante era un integer:
#include <string.h>
void f( )
{
char buff[15];
char *string="Hello, World";
sprintf(buff,"%s %d", string);
}
Per risolvere il problema, specificare gli argomenti mancanti come illustrato nel codice seguente:
#include <string.h>
void f( )
{
char buff[15];
char *string = "Hello, World";
sprintf(buff,"%s %d",string, strlen(string));
}
Per risolvere il problema, nel codice seguente viene utilizzata la funzione protetta di modifica delle stringhe, sprintf_s:
#include <string.h>
void f( )
{
char buff[15];
char *string="Hello World";
sprintf_s(buff,sizeof(buff),"%s %d", string, strlen(string));
}