C6306

avviso C6306: chiamata a <funzione> non corretta: si consiglia di utilizzare <funzione> che accetta va_list come argomento

L'avviso indica una chiamata a una funzione non corretta.La famiglia printf include varie funzioni che accettano un elenco variabile di argomenti; tali funzioni, tuttavia, non possono essere chiamate con un argomento va_list.Per tali chiamate è possibile utilizzare una famiglia di funzioni vprintf corrispondente.La chiamata a una funzione di stampa errata produrrà un output non corretto.

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 6306 
   va_end(v);
}

Per risolvere il problema, utilizzare 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);
}

Vedere anche

Riferimenti

C6273