Avertissement C6274
Non-caractère passé en tant que paramètre 'number' lorsque le caractère est requis dans l’appel à 'function'
Notes
Cet avertissement indique que la chaîne de format spécifie qu’un caractère est requis (par exemple, une %c
ou %C
spécification) mais qu’un non-entier tel qu’un float, une chaîne ou un struct est passé. Ce défaut est susceptible d’entraîner une sortie incorrecte.
Nom de l’analyse du code : NON_CHAR_ARGUMENT_TO_FORMAT_FUNCTION
Exemple
Le code suivant génère cet avertissement :
#include <stdio.h>
void f(char str[])
{
char buff[5];
sprintf(buff,"%c",str);
}
Pour corriger cet avertissement, utilisez le code suivant :
#include <stdio.h>
void f(char str[])
{
char buff[5];
sprintf(buff,"%c",str[0]);
}
Le code suivant utilise la fonction de manipulation de chaîne sécurisée, sprintf_s
pour corriger cet avertissement :
#include <stdio.h>
void f(char str[])
{
char buff[5];
sprintf_s(buff,5,"%c", str[0]);
}
Syntaxe de spécification de format : fonctions printf et wprintf
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
C4477
C4313