我有一个在运行时动态分配的二维数组,就像这样
accData = calloc(nbox, sizeof(double *));
for(bb = 0; bb < nbox; bb++)
accData[bb] = calloc(usedTime * usedChan, sizeof(double *));
我只想将第二维传递给我的函数。这个数组表示定义在几个不同“盒子”中的数据,对于每个盒子,我想将相关信息传递给函数,对其进行处理并将其存储在同一个数组中。目前这就是我的做法 -
for(bb = 0; bb < nbox; bb++)
fftAndsubtract(accData[bb], ntime, nchan, nsigma, bb);
其中fftAndSubtract
执行 FFT(快速傅立叶变换)和一些其他操作。函数定义如下:
int fftAndsubtract(double accData[], ntime, nchan, nsigma, bb);
但accData
似乎没有保留fftAndSubtract
产生的修改后的值。我已经验证了这一点,因为我正在打印函数本身完成的操作的输出。编译器没有抱怨,所以我不认为这是错误的。有一个更好的方法吗?
问题:有没有一种方法可以传递accData[bb]
给函数,以便函数完成的操作的输出存储在同一个数组中?