返回对数组结构的引用

时间:2016-03-20 09:32:53

标签: c++ struct

我已经定义了一个Struct

struct sym{
  int data_onel;
  int data_two;
}

我有功能

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

我在哪里创建一个struct数组并用数据填充结构。但是我想在另一个函数中返回这个arr。 e.g

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

我希望它通过引用传递,因此它不会被破坏,但它会继续抛出

 invalid initialization of reference of type 'Symbols*&' from expression of type 'Symbols'

如何从函数返回结构数组呢?参考。

1 个答案:

答案 0 :(得分:3)

你的根本问题是你试图返回一个本地数组,无论你怎么旋转它都无法工作。更好的方法是使用矢量;矢量也可以在本地声明,但与数组不同,它可以返回。

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

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