c++ - 返回对结构数组的引用

标签 c++ 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();
}

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

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

我怎样才能从函数返回结构数组呢?有引用意义。

最佳答案

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

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/

相关文章:

c++ - 计算直线交点 C++ 的最常用方法?

c++ - 相机运动补偿

c++ - 如何使用 boost::unit_test?

c++ - 在 C++ 中创建不可变对象(immutable对象)的更好方法

c - 外部结构数组错误: array type has incomplete element type

c++ - 在同一结构中声明一个结构数组

c++ - `moveToThread(nullptr)` 是从源线程拉出目标线程内的 QObject 的有效方法吗?

c++ - SFML 获取全屏模式

c - 添加的值不会正确保存到 malloc 数组。我忽略了内存泄漏吗?

c++ - 链接器因重复符号而失败