C++编译时出现 reference to local variable

具体见:https://stackoverflow.com/questions/19371137/c-reference-to-local-variable-returned

  • 会引发问题的实现如下:

vector<int> & find1(string &search_word)
{
    vector<int> final;
final.push_back(2);
final.push_back(5);


return (final); //This is giving me the error when I try to return the vector.

}

int main ()

{
string search;

cin >> search;

vector <int> &p = find1(search);


}

  • 修改find1方法返回对象而不是引用
//错误的
//在find1方法结束时,方法内部的局部变量就会被清楚
std::vector<int>& find1(std::string& search_word)
std::vector<int>& p = find1(search);

//正确的
//使用对象,而不是引用
vector<int> find1(string &search_word); //返回类型从引用变成对象
std::vector<int> p = find1(search);

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值