Cppcheck: no se le asigna un valor a la variable 'bla'
-
24-10-2019 - |
Pregunta
Ejecutar cppcheck sobre mi base de código produce algunas advertencias de estilo. Por ejemplo
void foo(int& x)
{
x = 0;
}
void bar()
{
int y;
foo(y);
}
me da
Variable 'y' is not assigned a value
Es lo mismo con el código como
char buffer[160];
i+=sprintf(buffer,"%2.2ld.",ymd.monthday);
¿Es esto un problema con mi código o es un problema con cppcheck? (¿Cómo) debo arreglarlo?
¡Gracias por cualquier pensamiento!
Solución
Es un insecto ¡En CPPCheck y la buena noticia es que ya se ha solucionado!
Puedes tomar el último código y construya su propia versión o espere a que se lance V1.48. Se planea que la versión 1.48 se lanzará el 9 de abril según la wiki.
Otros consejos
Es un problema de cppcheck. Su código está bien (al menos el dado).
Estás utilizando la variable y
Como parámetro 'fuera', pero CPPCheck no puede determinar eso. Es mejor inicializar el y
en el momento de la definición con int y = 0;
para que en el futuro si alguien intenta usar el parámetro x
en foo
No tendrán un valor no inicializado.