C++中的警告语句(初学者)

C++中的警告语句(初学者)

问题描述:

我刚刚尝试了几件事情,因为我刚刚开始使用C++。我没有得到以下错误语句:C++中的警告语句(初学者)

#include <string> 

using namespace std; 
string& s6(string a) {return a;} 
int main() { 

    string a = "helloo"; 

    s6(a); 

    return 0; 
} 

然后我得到以下警告:

 
Untitled.cpp:4:30: warning: reference to stack memory associated with local variable 'a' returned [-Wreturn-stack-address] 
string& s6(string a) {return a;} 
          ^
1 warning generated. 

是什么恰恰意味着?

+0

它的确切含义就是它所说的。 –

那个消息意味着你正在返回一个局部变量的引用,那很糟糕,并且会导致未定义的行为

局部变量,如函数内声明的变量,但也是参数的函数,是函数的局部变量,当它们超出作用域(函数返回)时被破坏。如果你返回一个局部变量的引用,当函数返回时,你将有一个对象不再存在的引用。

+0

非常有帮助,谢谢:) – Susan