瓦尔格林德对带有默认参数的变量进行"conditional jump on uninitialized value"
Valgrind giving "conditional jump on uninitialized value" on variable with default parameter
我正在对我拥有的一些C++代码运行 valgrind,它给出一个错误,说我对未初始化的值有条件跳转。这是有问题的一段代码,它是一个方法(不是静态的(。
if (debug_ & 0x1) {
printf("Debugging information...n");
}
但是变量debug_
是在构造函数中设置的,如下所示:
MyClass::MyClass(
AnotherClass* interface,
int debug) :
debug_(debug)
{
//Some other irrelevant stuff
}
标头为该参数定义了一个默认参数:
class MyClass : boost::noncopyable {
public:
explicit MyClass(AnotherClass* interface, int debug=0xFF);
//Other stuff
private:
int debug_;
}
但为了更好地衡量,即使我实例化这个类,我也将一个值传递给第二个参数。我错过了什么?
好吧,我觉得很愚蠢,但SSCCE的事情为我指明了正确的方向。我以为我已经看过了一切,但没有。该类中有一个 setDebug(( 方法可以更改调试值,它被构造函数调用了几级,并从另一个尚未初始化的结构中传入数据。
相关文章:
- 瓦尔格林德:数学函数"Conditional jump or move depends on uninitialised value(s)"
- C++中是否存在 std::conditional 的懒惰等价物?
- CPP 中的瓦尔格林德和记忆泄漏:"Conditional jump or move depends on uninitialised values"
- 使用std::conditional中的模板来确定函数参数类型
- 如何在 GCC 中启用 C/C++ "Conditional with Omitted Operand"(又名猫王操作员 "?:" )
- std::conditional - 嵌套用法
- 将 std::conditional 与不可转换类型(原始与指针)一起使用
- std::cout doen不喜欢 std::endl 和 String in conditional-if
- "Conditional"别名模板
- "enumeral and non-enumeral type in conditional expression"背后的推理
- 有没有一种方法可以在std::conditional fail上给出更好的错误
- ASM JUMP指令和C/C++中的指针之间的主要区别是什么?
- 检查布尔模板参数时摆脱"conditional expression is constant"警告的方法?
- 瓦尔格林德对带有默认参数的变量进行"conditional jump on uninitialized value"
- 如何使用 std::conditional 根据模板参数类型设置类型
- 在 switch 语句中使用向量时"Jump to case label"错误。
- 如何避免模板代码中编译时常量条件"conditional expression is constant"警告?
- 在没有警告(或编译指示)的情况下进行便携式"assign within conditional expressions"的好方法?
- Making Conditional isdigit()
- 双链表实现中的"Conditional jump or move depends on uninitialised value"