【发布时间】:2012-03-09 11:13:50
【问题描述】:
双 ** 和双 (*)[2] 有什么区别。
如果我理解得很好,double ** 是指向 double 指针的指针,因此它可以是任意大小的二维数组,而 double (*)[2] 是指向 double[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]不同。 -
阅读comp.lang.c FAQ的第6部分。
标签: c++ c gcc gcc-warning