【发布时间】:2013-07-07 00:25:09
【问题描述】:
我有一个在运行时动态分配的二维数组,就像这样
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] 传递给函数,以便函数完成的操作的输出存储在同一个数组中?
【问题讨论】:
-
你能用你更新的代码修改你的帖子吗?
标签: c pointers multidimensional-array dynamic-allocation