初期化されていない「max」と「min」の値がLinuxで機能するのに、Windowsでは機能しないのはなぜですか。例えば:
double max, min, test;
while (1)
{
std::cin >> test;
if (test > max)
max = test;
if (test < min)
min = test;
}
これはLinuxで機能します。私はこれを少なくとも3か月間使用しているので(これがどれほどひどいのか今まで気づいていませんでしたが)、事実を知っています。しかし、私は多くの同僚から、これは彼らのマシンでは壊れていると言われました。彼らはVisualStudioを使用してコンパイルします。彼らの発言にはある程度の妥当性がありますか、そしてその理由は何ですか?これは単にUBの場合ですか?もしそうなら、私が気付かないうちに過去数ヶ月間どのように機能してきましたか?
注:gcc(Ubuntu / Linaro 4.5.2-8ubuntu4)4.5.2およびVisual Studio 2010