Avertissement C6272

Non-float passé en tant qu’argument 'number' lorsque float est requis dans l’appel à 'function-name'

Notes

Cet avertissement indique que la chaîne de format spécifie qu’un float est requis. Par exemple, une ou %g spécification %f pour printf, mais un non-float tel qu’un entier ou une chaîne est passé. Ce défaut peut entraîner des blocages, en plus d’une sortie potentiellement incorrecte.

Nom de l’analyse du code : NON_FLOAT_ARGUMENT_TO_FORMAT_FUNCTION

Exemple

Le code suivant génère cet avertissement. %f indique qu’un float est attendu, mais que l’entier i est passé à la place :

void f()
{
     char buff[5];
     int i=5;
     sprintf_s(buff, sizeof(buff), "%s %f", "a", i);
}

Pour corriger cet avertissement, modifiez le spécificateur de format ou modifiez les paramètres passés à la fonction. Dans cet exemple, nous corrigeons cet avertissement en utilisant %i au lieu de %f.

void f()
{
     char buff[5];
     int i=5;
     sprintf_s(buff, sizeof(buff), "%s %i", "a", i);
}

Voir aussi

Syntaxe de spécification de format : fonctions printf et wprintf
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l
C4477