#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