2015-09-25 91 views
0

我剛剛嘗試了幾件事情,因爲我剛剛開始使用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

它的確切含義就是它所說的。 –

回答

1

那個消息意味着你正在返回一個局部變量的引用,那很糟糕,並且會導致未定義的行爲

局部變量,如函數內聲明的變量,但也是參數的函數,是函數的局部變量,當它們超出作用域(函數返回)時被破壞。如果你返回一個局部變量的引用,當函數返回時,你將有一個對象不再存在的引用。

+0

非常有幫助,謝謝:) – Susan