双**和双(*)[2]之间的区别是什么?如果我理解的很好,double **是指向double指针的指针,所以它可以是任意大小的二维数组,而double(*)[2]是指向double [2]的数组的指针]。C中的双**和双(*)[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]’
什么是要通过正确的方式一个double(*)[2]函数?
编辑:调用代码
fftw_complex *in; /* typedef on double[2] */
in = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * 1024);
pcmTocomplex(data, in);
告诉我们调用代码 – 2012-03-09 11:15:45
'double * [2]'与'double(*)[2]'不一样。 – 2012-03-09 11:22:55
阅读[comp.lang.c常见问题](http://c-faq.com/)的第6部分。 – 2012-03-09 11:25:15