C6272

Mise à jour : novembre 2007

C6272

Avertissement C6272 : Valeur non float passée comme argument <numéro> lorsqu'une valeur float est requise dans l'appel à <fonction>

Cet avertissement indique que la chaîne de format spécifie qu'une valeur float est requise, par exemple, une spécification %f ou %g pour printf, mais une valeur non float, par exemple un entier ou une chaîne, est passée. Ce défaut risque de générer une sortie incorrecte ; toutefois, il peut produire un blocage dans certains cas.

Exemple

Le code suivant génère cet avertissement :

#include <stdio.h>
#include <string.h>

void f()
{
   char buff[5];
   int i=5;

   sprintf(buff,"%s %f","a",i); 
}

Pour corriger cet avertissement, utilisez %i au lieu de la spécification %f, comme indiqué dans le code suivant :

#include <stdio.h>
#include <string.h>

void f()
{
   char buff[5];
   int i=5;

   sprintf(buff,"%s %i","a",i);  
}

Le code suivant utilise la fonction de manipulation de chaînes sécurisée, sprintf_s, pour corriger cet avertissement :

#include <stdio.h>
#include <string.h>

void f()
{
   char buff[5];
   int i=5;

   sprintf_s(buff,5,"%s %i","a",i); // safe version
}

Voir aussi

Référence

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l