Partager via


Avertissement C6306

Appel incorrect à ' fonction' : envisagez d’utiliser 'function' qui accepte un va_list en tant qu’argument

Notes

Cet avertissement indique un appel de fonction incorrect. La printf famille comprend plusieurs fonctions qui prennent une liste variable d’arguments . Toutefois, ces fonctions ne peuvent pas être appelées avec un va_list argument. Il existe une famille de fonctions correspondantes vprintf qui peuvent être utilisées pour ces appels. L’appel de la fonction d’impression incorrecte entraîne une sortie incorrecte.

Nom de l’analyse du code : INCORRECT_VARARG_FUNCTIONCALL

Exemple

Le code suivant génère cet avertissement :

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

Pour corriger cet avertissement, utilisez le code suivant :

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

Voir aussi

C6273