-3

重複の可能性:ローカル変数
または一時変数のアドレスを返す
ローカル変数のメモリにスコープ外でアクセスできますか?
ローカル変数への参照を返す

refを返すときの未定義の動作ですか。ローカル変数に ?

http://ideone.com/Kz381

int & func(){

        int x = 10;
        return x;

}

int main() {

        int &y = func();
        cout << y << endl;

}
4

2 に答える 2

7

はい、そうです。関数が終了すると、変数は使用できなくなります。

それが機能しているように見えるのは不運です。問題は、そのメモリはクリアされていないため、10まだ存在していますが、いつでも再利用できるため、安全ではありません.

于 2012-05-18T08:27:30.813 に答える
5

技術的なことをしたい場合、それを返すことは未定義の動作ではありません。返されたものを使用しようとした場合にのみ、未定義の動作が発生します。

于 2012-05-18T08:36:03.227 に答える