返回对结构数组的引用

Return reference to array of structs

本文关键字:引用 数组 结构 返回      更新时间:2023-10-16

我定义了一个结构:

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();
}

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

从类型"符号"

的表达式初始化类型"符号*&"的引用无效

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

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

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