我有一个传递向量地址的API函数:
function_A()
{
function_B();
}
function_B()
{
vector<int> tempVector;
function(&tempVector[0]); // <---- API function: fills the vector with values
...
}
tempVector
的创建位于function_B
,效果很好。
我希望tempVector
的创建位于function_A
并传递指针,因此程序中的其他函数也将使用tempVector
内的数据。
我试图通过几种方式将指针传递给tempVector
function(...)
,但我总是遇到错误。
function_A()
{
vector<int> tempVector; // <--- creation here
function_B(&tempVector); // pass its address
//use tempVector
}
function_B(vector<int> * tempVector) // receive its address
{
function(); // <---- API function: how should I pass tempVector?
...
}
答案 0 :(得分:2)
为什么将它作为C指针而不是C ++引用传递?
function_A()
{
vector<int> tempVector;
function_B(tempVector);
//use tempVector
}
function_B(vector<int>& tempVector)
{
function(&tempVector[0]);
...
}
答案 1 :(得分:1)
您必须像往常一样取消引用指针,如:
function_B(vector<int> * tempVector) {
function(&(*tempVector)[0]);
}
答案 2 :(得分:0)
像指针一样传递它:
function_B(vector<int> * tempVector) // receive its address
{
function(tempVector);
...
}
function(vector<int> * tempVector)
{
...
}
OR,passit as a variable:
function_B(vector<int> * tempVector) // receive its address
{
function(*tempVector);
...
}
function(vector<int> tempVector)
{
...
}