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