首页 > 解决方案 > 从 C++ 中的用户定义函数返回多数组的结构

问题描述

我写了一个如下的函数,声明了一个二维数组的结构。此结构的大小在函数 read_landmask 中初始化。

struct landmask {
    double value;
};
landmask read_landmask(NcFile &dataFile,grid grid, parameters params) {
NcVar lm;
...
  size_t m=grid.lat.size();
  size_t n=grid.lon.size();

  landmask lmdomain[m][n];

  for (int i=0;i<m;++i){
    for (int j=0;j<n;++j){
      neighborpoints nbpoints=closest_distance(lmbnds.sizelat,lmbnds.sizelon,*lmdata, lmbnds.lat,lmbnds.lon, grid.lat[i], grid.lon[j]);
      lmdomain[i][j].value=interp2D_Cressman(nbpoints.lon, nbpoints.lat,nbpoints.val, grid.lat[i], grid.lon[j]);
    }
  };

  return lmdomain[m][n];
};

在主函数中,它被称为:

int main(){
landmask landmask_array=read_landmask(lmfile,grid,params);
cout<< landmask_array[3][2].value<< endl;
};

但 cout 是错误的。似乎数组没有返回整个二维数组,所以我不能放置行和列的索引。有没有人有这方面的想法或经验?谢谢

标签: c++arraysmemorystructallocation

解决方案


推荐阅读