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
非常有帮助,谢谢:) – Susan
它的确切含义就是它所说的。 –