私はこれが起こる理由もそれを避ける方法も見つけられませんでした。C++ - whileループの後に変数をクリアするには?
C++では、whileループごとにのみ動作する一時変数を宣言しようとしていますが、この終了後に破棄されるはずです。
私はこのようなものがあります:最初のループでは
#include <iostream>
int main() {
while (foo) {
float SampleVariable;
...
std::cout << SampleVariable << std::endl;
...
SampleVariable = 20;
}
return 0;
}
を、SampleVariable
出力値が5.8825e-39
です。 2番目以降のループでは、SampleVariable
の出力値は20
です。最初のループでは
未定義の動作 –
ループの先頭に*を付け、終わりではない値を与えることになっています。とにかく、ループの終わりに変数が破棄されても、コンパイラはその都度変数に同じバイトを使用する可能性が高いです(これが最も簡単な方法です)。 –
whileループの本体の中で初期化されていない変数を扱うと、あなたが見るものは_undefined behavior_です。私は私の猫が猫を飼うかどうか調べるために私のワードローブに行くだろう。ああ待って、私は猫がありません: - P ... – user0042