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

最佳答案

为什么将其作为C指针而不是C++引用传递?

function_A()
{
  vector<int> tempVector;
  function_B(tempVector);

  //use tempVector
}

function_B(vector<int>& tempVector)
{

    function(&tempVector[0]);
   ...
}

关于c++ - 传递指向API函数的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30029596/

10-09 05:24