将指针传递给API函数

时间:2015-05-04 11:59:45

标签: c++ pointers

我有一个传递向量地址的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?
   ...
}

3 个答案:

答案 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)
{
    ...
}