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」はアサーションの前に初期化されていますが、なぜそのエラーが発生するのですか?
前もって感謝します。