出于某种原因,我认为我有 allRates 是 x*y*z 长度指针,指向双精度数,rates 本质上是一个 3 维数组。但我不记得它是如何工作的。
// Allocate 3D Rate Array
double *allRates = malloc( x*y*z*sizeof(double) );
if (!allRates) exit(1);
double ***rates = malloc( x*sizeof(double **) );
if (!rates) exit(1);
for(i=0; i<x; i++) {
rates[i] = malloc(y * sizeof(double *));
// Check rates[i] allocation?
for(j=0; j<y; j++) {
rates[i][j] = allRates + (i*y*z) + (j*z);
}
}
它运行正常......我只是在处理文档,自三月份以来一直没有处理这部分代码。