我是C ++的新手,我真的无法理解以下内容的错误。
当我尝试从main函数访问向量时,我得到no_sanitize_address
(我可以看到segmentation fault
消息),而我期望Vector received
中的变量asd
1}}应该引用函数main
分配的内存。
get_vector
另一点是,当用g ++编译它时,我会收到警告#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<double>& get_vector()
{
cout << "Enter function" << endl;
vector<double> asd;
asd.push_back(10.);
cout << "Exit function" << endl;
return asd;
}
int main() {
vector<double>& asd = get_vector();
cout << "Vector received" << endl;
cout << asd[0] << endl;
}
。我想这是非常糟糕的事情......有人可以告诉我这是什么问题或给我一些链接,我可以找到解释吗?
谢谢