C6306
Aviso C6306: chamada incorreta para <função>: considere usar <função> que aceita um va_list como um argumento
Esse aviso indicar uma chamada de função incorreta.A família de printf inclui várias funções que usam uma variável lista de argumentos; porém, estas funções não podem ser chamadas com um argumento de va_list .Há uma família correspondente de vprintf as funções que podem ser usadas para essas chamadas.Chame a função de cópia errada causará saída incorretas.
Exemplo
O código a seguir gera este aviso:
#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);
}
Para corrigir esse aviso, use o seguinte código:
#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);
}