Maison > Article > développement back-end > Pourquoi Valgrind signale-t-il les erreurs « Valeur non initialisée » uniquement lorsque la valeur est utilisée ?
Identifier la source des erreurs de valeur non initialisées
Le message de Valgrind « Le saut ou le déplacement conditionnel dépend de la ou des valeurs non initialisées » peut être déroutant un, car il indique uniquement où la valeur non initialisée est utilisée, pas son origine. Pour résoudre ce problème, les options suivantes sont disponibles :
La FAQ Valgrind explique en outre que la déclaration hâtive de toutes les copies de valeurs non initialisées a été rejetée en raison de la prévalence de faux positifs dans les applications légitimes. programmes.
Exemple
Considérez l'extrait de code :
movespeed = stat.speedfactor * speedfac * currentbendfactor.val;
Si speedfac est un float non initialisé, Valgrind peut ne pas signaler d'erreur à ce stade. indiquer. Cependant, lorsque la valeur est utilisée pour une impression, l'erreur sera générée. Ce comportement reflète la politique de reporting de Valgrind décrite ci-dessus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!