#include <iostream>
#include <vector>
using namespace std;
void em(vector<int>* pv);
int main()
{
vector<int>* pv = NULL;
em(pv);
printf("%d %d", (*pv)[0], (*pv)[1]); // Error!
}
void em(vector<int>* pv)
{
vector<int> V;
pv = &V;
V.push_back(1);
V.push_back(2);
printf("%d %d\n", V[0], V[1]);
// 1 2 OK!
}
我知道向量是动态分配。 但是,当函数结束时,内存似乎被释放。 我想使用一个指针来使用另一个函数中的函数内部声明的向量。 我该怎么办?要使用在另一个函数中的函数内声明的向量
使用'std :: vector em()'并返回向量。 (N)RVO将删除看起来是副本的东西。 –
nwp
或者传递给em的引用。 –
我需要从函数A创建一个向量,并在B中使用该向量。所以我尝试使用指针进行通信。 – StackQ