簡體   English   中英

返回對結構數組的引用

[英]Return reference to array of structs

我定義了一個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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM