Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Valgrind未命中未初始化的值警告_C++_C_Valgrind - Fatal编程技术网

C++ Valgrind未命中未初始化的值警告

C++ Valgrind未命中未初始化的值警告,c++,c,valgrind,C++,C,Valgrind,有一个变量“flag”用于指示特定场景是真是假: 此变量是类的一部分,未初始化为任何值 它随后在如下代码段中使用: if(a) { ------ } else if(flag) { ----- } else if(b) { ------ } 使用MemCheck运行Valgrind时,即使命中了else if(flag)代码段,也不会有条件跳转或移动取决于Valgrind抛出的未初始化值警告 变量“b”也未初始化,但Valgrind正确地为其抛出警告 关于Valgrind为什么会错过'flag

有一个变量“flag”用于指示特定场景是真是假:

此变量是类的一部分,未初始化为任何值

它随后在如下代码段中使用:

if(a)
{
------
}
else if(flag)
{
-----
}
else if(b)
{
------
}
使用MemCheck运行Valgrind时,即使命中了else if(flag)代码段,也不会有条件跳转或移动取决于Valgrind抛出的未初始化值警告

变量“b”也未初始化,但Valgrind正确地为其抛出警告

关于Valgrind为什么会错过'flag'变量的警告,是否有任何可能的解释?这是由于某种编译器优化造成的吗


提前感谢..

您确定
char标志
是自动的吗?如果看不到正确的代码(如a),就不可能说什么。很可能这个变量是在某个地方初始化的,而您只是错过了它。@Joachim Pileborg为了确保它确实未初始化,我在上述代码段前几行的简单if()条件中使用了相同的“flag”变量。在这种情况下,Valgrind确实发出了警告。所以我的问题是为什么上面提到的代码中没有显示错误?仍然需要一个最小的、完整的和可验证的示例…您使用哪种优化级别?
if(a)
{
------
}
else if(flag)
{
-----
}
else if(b)
{
------
}