我通过以下代码为 3D 矩阵分配内存。
double ***AllocMatrix3(short nrh, short nch, short nph)
{
short i,j,k;
double ***m;
m=(double ***) malloc(nrh* sizeof(double***));
for(i=0;i<=nrh;i++) {
m[i]=(double **) malloc(nch*sizeof(double*));
for (j=0;j<=nch;j++){
m[i][j]=(double*) malloc(nph*sizeof(double));
}
}
for(k=0;k<=nph;k++)
for(i=0;i<=nrh;i++)
for(j=0;j<=nch;j++)
m[i][j][k] = 0.0;
return m;
}
但是当我尝试使用下面的代码释放内存时它不起作用
void FreeMatrix3(double ***m,short nrl,short nrh,
short ncl,short nch, short npl,short nph)
{
short i,j,k;
for(i=nrh;i>=0;i--)
for(j=nch;j>=0;j--)
free((m[i][j]));
free(m[i]);
}
你能帮忙吗?提前致谢。维吉塔