2
int func() {
    int a;
    ++a;  // is this safe?
    printf("%d\n", a);
}

printf するとa未定義の動作になることはわかっていますが++a、C++ 標準では安全ですか? aこれにより、副作用 (例外のスローやプログラムのクラッシュ) なしで、「別の」初期化されていない値が割り当てられますか?

4

3 に答える 3

0

プログラムがクラッシュすることはないかもしれませんが、安全ではないことは確かです。常に変数を初期化する必要があります。起こりうる最悪の事態は、プログラムが動作しているように見えても、原因がわからないままランダムにクラッシュしたり、単純に奇妙な動作をしたりすることです。

于 2013-06-29T14:13:25.703 に答える