Advertencia C6274
No carácter pasado como parámetro 'number' cuando se requiere carácter en la llamada a 'function'
Comentarios
Esta advertencia indica que la cadena de formato especifica que se requiere un carácter (por ejemplo, una especificación %c
o %C
), pero se pasa un carácter no entero, como float, string o struct. Es probable que este defecto provoque una salida incorrecta.
Nombre del análisis de código: NON_CHAR_ARGUMENT_TO_FORMAT_FUNCTION
Ejemplo
El código siguiente genera esta advertencia:
#include <stdio.h>
void f(char str[])
{
char buff[5];
sprintf(buff,"%c",str);
}
Para corregir esta advertencia, utilice el código siguiente:
#include <stdio.h>
void f(char str[])
{
char buff[5];
sprintf(buff,"%c",str[0]);
}
El siguiente código usa la función de manipulación segura de cadenas, sprintf_s
, para corregir esta advertencia:
#include <stdio.h>
void f(char str[])
{
char buff[5];
sprintf_s(buff,5,"%c", str[0]);
}
Sintaxis de especificación de formato: funciones printf y wprintf
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
C4477
C4313
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de