返回对局部变量的引用

返回对局部变量的引用

This question already has answers here:
Can a local variable's memory be accessed outside its scope?
                                
                                    (20个答案)
                                
                        
                                6年前关闭。
            
                    
下面的代码错误吗?我正在返回对局部变量的引用...它应该是核心转储,但是执行得很好。以下代码是否在我的系统上正常运行,因为我很幸运?

#include<iostream>
using namespace std;

class a{
    public:
    int i;
    int arr[20];
    a()
    {
        cout<<"\ninside constructor";
        i=10;
    }
    public:
    static a& ret()
    {
        a chk;
        return chk;
    }
    void say()
    {
        i=10;
        arr[0]=1;
        cout<<"\nHello World\n";
    }

};


int main()
{
(a::ret()).say();
return 1;
}

最佳答案

it should core dump-不。这是不确定的行为,任何事情都可能发生,包括看起来可行(这很糟糕,因为它可以隐藏错误)。


  下面的代码在我的系统上工作正常吗,因为我很幸运?


不,因为你很不幸。

关于c++ - 在C++中返回对局部变量的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17475995/

10-11 23:17