Avviso C6064
Argomento integer mancante in 'function-name' corrispondente all'identificatore di conversione 'number'
Questo avviso indica che il codice non fornisce argomenti sufficienti per trovare una corrispondenza con una stringa di formato e uno degli argomenti mancanti è un numero intero.
Osservazioni:
Questo difetto può causare un output errato e, in casi più pericolosi, può causare un overflow dello stack.
Nome dell'analisi del codice: MISSING_INTEGER_ARGUMENT_TO_FORMAT_FUNCTION
Esempio
Il codice seguente genera questo avviso perché usa un numero errato di argomenti nella chiamata a sprintf_s
e l'argomento mancante è un numero intero. Se la funzione sprintf
unsafe è stata usata invece della variante sprintf_s
più sicura, è probabile che questo codice causi un overflow dello stack anziché solo un output imprevisto:
void f()
{
char buff[8];
const char *string="Hello";
sprintf_s(buff, sizeof(buff), "%s %d", string); // Attempts to print "Hello "
// followed by a number up to eleven characters long, depending on the garbage
// found on the stack. Any number other than a single non-negative digit can't
// fit in the 8 char buffer and leave room for the trailing null. If sprintf
// had been used instead, it would overflow.
}
Per correggere l'avviso, specificare argomenti mancanti o modificare la stringa di formato. In questo esempio viene aggiunto il valore intero mancante.
void f()
{
char buff[8];
const char *string = "Hello";
sprintf_s(buff, sizeof(buff), "%s %d", string, strlen(string));
}
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per