我在课堂上有以下功能。
bool ncread_llt::get_dataArray_atOnce (float **data)
{
startp[0]=0;
countp[0]=ntime;
float vdata[ntime][nlat][nlon];
dataVar.getVar(startp, countp, &vdata);
int offset=0;
for(int t =0; t<ntime; t++)
{
for (int i = 0; i < nlat - 1; i++)
{
for (int j = 0; j < nlon - 1; j++)
{
offset=i*nlat+j;
data[t][offset]=vdata[t][i][j];
}
}
}
return(true);
}
我在我的主程序中这样称呼它
float **rain[ntime][rain_pts]; //I get segfault in the next line.
ncf1.get_dataArray_atOnce (**rain); //ncf1 is an object of the classs ncread_llt
这东西适用于矢量符号,但我需要使用需要二维数组作为输入的库函数。我不知道我在这里犯了什么错误。我尝试了几种指针表示法的组合,但它没有编译,当它编译时(上述组合)它会出现分段错误。这段代码有什么问题吗?为什么会编译。