Condividi tramite


Avviso C6306

Chiamata errata a 'function': è consigliabile usare 'function' che accetta un va_list come argomento

Osservazioni:

Questo avviso indica una chiamata di funzione non corretta. La printf famiglia include diverse funzioni che accettano un elenco variabile di argomenti. Queste funzioni, tuttavia, non possono essere chiamate con un va_list argomento. Esiste una famiglia di funzioni corrispondente vprintf che può essere usata per tali chiamate. La chiamata alla funzione di stampa errata causerà un output non corretto.

Nome dell'analisi del codice: INCORRECT_VARARG_FUNCTIONCALL

Esempio

Il codice seguente genera questo avviso:

#include <stdio.h>
#include <stdarg.h>

void f(int i, ...)
{
   va_list v;

   va_start(v, i);
   //code...
   printf("%s", v); // warning C6306
   va_end(v);
}

Per correggere questo avviso, usare il codice seguente:

#include <stdio.h>
#include <stdarg.h>

void f(int i, ...)
{
   va_list v;

   va_start(v, i);
   //code...
   vprintf_s("%d",v);
   va_end(v);
}

Vedi anche

C6273