用valgrind对代码进行内存检测的时候,如果提示“Conditional jump or move depends on uninitialised value(s)”,有可能是某些变量未初始化造成的。
例如我遇到的两处这样的提示,一处是由于 struct tm 结构体未初始化,另一处是由于 char tmp[512]未初始化造成的。要初始化,只需memset即可,这样做之后,valgrind不再会提示有问题。
请在90%以上的时间里相信valgrind,而不是坚持自己的代码不需要做任何改动。
本文介绍了使用Valgrind进行内存检测时常见的错误提示“Conditional jump or move depends on uninitialised value(s)”的原因及解决办法。通过两个实例,分别演示了如何通过初始化struct tm结构体和char数组来消除此类警告。
970

被折叠的 条评论
为什么被折叠?



