double **とdouble(*)[2]の違いは何ですか?Cのdouble **とdouble(*)[2]の相違
私がよく理解していれば、double **はdouble型のポインタへのポインタです。したがって、double型(*)[2]はdouble型の配列へのポインタです]。
それが正しい場合、どのように正常に関数に渡すことができます。渡すための正しい方法は何ですか
warning: passing argument 2 of ‘pcmTocomplex’ from incompatible pointer type
note: expected ‘double **’ but argument is of type ‘double (*)[2]’
:で例えば
:
void pcmTocomplex(short *data, double *outm[2])
私は(*)doubleを渡した場合、[2]のパラメータとして、私は次の警告を持っています二重(*)[2]関数に?
EDIT:あなたは、この2番目のパラメータの種類を変更する必要があるコード
fftw_complex *in; /* typedef on double[2] */
in = (fftw_complex *) fftw_malloc(sizeof(fftw_complex) * 1024);
pcmTocomplex(data, in);
私たちは、呼び出しコード –
を表示します。 'double * [2]'は 'double(*)[2]'と同じではありません。 –
[comp.lang.c FAQ](http://c-faq.com/)のセクション6を読んでください。 –