В чем разница между двойным ** и двойным (*) [2].
Если я хорошо понимаю, double ** - это указатель на указатель double, поэтому это может быть 2D-массив любого размера, тогда как double (*) [2] - указатель на массив double [2] .
Так что, если это правильно, как его можно успешно передать функции.
Например, в:
void pcmTocomplex(short *data, double *outm[2])
если я передаю значение типа double (*) [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);