雙**和雙(*)[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