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
}