双星号(double **)和双括号号(double (*)[2])有什么区别?
如果我理解正确的话,双星号是指向双精度浮点数的指针,可以是任意大小的二维数组,而双括号号是指向双精度浮点数数组的指针[2]。
所以,如果我的理解是正确的,如何将其成功地传递给函数呢?
例如:
void pcmTocomplex(short *data, double *outm[2])
如果我将一个双精度 (*)[2] 作为参数传递,我会收到以下警告:
warning: passing argument 2 of ‘pcmTocomplex’ from incompatible pointer type
note: expected ‘double **’ but argument is of type ‘double (*)[2]’
什么是将双重(*)[2]传递给函数的正确方法?
编辑:调用代码
fftw_complex *in; /* typedef on double[2] */
in = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * 1024);
pcmTocomplex(data, in);
double*[2]
不同于double (*)[2]
。 - CB Bailey