0
int* g () {
    int j = 2;
    return &j;
}

int main () {
    using namespace std;

    int v = *g();
    //  assert(v == 2);  // Valgrind: Conditional jump or move depends on uninitialised value(s)
}

したがって、その assert は Valgrind エラーを引き起こしますが、そのエラーが何を意味するのか、そのステートメントで assert を呼び出すことが許可されていない理由はよくわかりません。

「v」はアサーションの前に初期化されていますが、なぜそのエラーが発生するのですか?

前もって感謝します。

4

1 に答える 1