Partager via


C6306

avertissement C6306 : appel à <fonction> incorrect : si possible, utilisez <fonction> qui accepte un type va_list comme argument

Cet avertissement indique un appel de fonction incorrect. La famille printf contient plusieurs fonctions qui acceptent une liste variable d'arguments ; toutefois, ces fonctions ne peuvent pas être appelées avec un argument va_list. Une famille vprintf correspondante de fonctions peut être utilisée pour ces appels. L'appel à la fonction d'impression incorrecte provoque une sortie incorrecte.

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 6306 
   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

Référence

C6273