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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour