CppCheck: Variable « bla » est pas attribué une valeur
-
24-10-2019 - |
Question
en cours d'exécution CppCheck sur mon produit quelques avertissements codebase de style. Par exemple. en
void foo(int& x)
{
x = 0;
}
void bar()
{
int y;
foo(y);
}
il me donne
Variable 'y' is not assigned a value
Il est le même avec le code comme
char buffer[160];
i+=sprintf(buffer,"%2.2ld.",ymd.monthday);
Est-ce un problème avec mon code ou est-il un problème avec CppCheck? (Comment) dois-je résoudre ce problème?
Merci pour toute pensée!
La solution
Il est un bug CppCheck et les bonnes nouvelles est qu'il a déjà été fixé!
Vous pouvez soit récupérer le dernier code et construire votre propre version ou attendre v1.48 à être libéré. Version 1.48 est prévu pour être publié le 9 Avril selon le wiki .
Autres conseils
Il est un problème de CppCheck. Votre code est très bien (au moins une donnée).
Vous utilisez la y
variable en tant que paramètre « out », mais CppCheck n'est pas en mesure de déterminer. Il est préférable d'initialiser le y
au moment de la définition avec int y = 0;
afin qu'à l'avenir, si quelqu'un essaie de d'utiliser le paramètre x
dans foo
ils ne seront pas valeur non initialisée.