我定义了一个Struct:

struct sym{
  int data_onel;
  int data_two;
}


我有功能:

sym*& fillStruct(){
   sym array_of_struct[size];
   /.. fill array with data
   return *array_of_struct;
}


我在其中创建一个结构数组,并用数据填充结构。但是,我想在另一个函数中返回此arr。例如

bool another(){
   sym *next_array = fillStruct();
}


我希望它通过引用传递,这样它就不会被破坏,但会不断抛出:


  从'Symbols'类型的表达式对'Symbols *&'类型的引用的无效初始化


那么如何从函数返回结构数组?供参考。

最佳答案

您的根本问题是您试图返回一个本地数组,无论您如何旋转它都将永远无法工作。更好的方法是使用向量。向量也可以在本地声明,但是与数组不同,它可以返回。

vector<sym> fillStruct(){
   vector<sym> array_of_struct;
   /.. fill array with data
   return array_of_struct;
}

bool another(){
   vector<sym> next_array = fillStruct();
}

关于c++ - 返回对结构数组的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36112127/

10-11 00:20