Advertencia C6306

Llamada incorrecta a 'function': considere la posibilidad de usar 'function' que acepta un va_list como argumento.

Comentarios

Esta advertencia indica una llamada a función incorrecta. La printf familia incluye varias funciones que toman una lista variable de argumentos; sin embargo, no se puede llamar a estas funciones con un va_list argumento . Hay una familia de funciones correspondiente vprintf que se puede usar para estas llamadas. Llamar a la función de impresión incorrecta provocará una salida incorrecta.

Nombre del análisis de código: INCORRECT_VARARG_FUNCTIONCALL

Ejemplo

El código siguiente genera esta advertencia:

#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);
}

Para corregir esta advertencia, utilice el código siguiente:

#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);
}

Consulte también

C6273