【发布时间】:2016-10-27 01:04:56
【问题描述】:
如何创建一个数组,以便将其作为指针传递给该函数?
void SomeFunction(double *a, double *b, double *c);
我这样制作了我的二维数组(但我有错误):
static double matrix_a [MATRIX_DIM][MATRIX_DIM];
static double matrix_b [MATRIX_DIM][MATRIX_DIM];
static double matrix_c [MATRIX_DIM][MATRIX_DIM];
for (i=0;i<MATRIX_DIM;i++) {
for (j=0;j<MATRIX_DIM;j++) {
// initializing matrices here
}
}
现在我指向数组:
double *a = &matrix_a;
double *b = &matrix_b;
double *c = &matrix_c;
然后调用函数:
SomeFunction(a, b, c);
但是我收到以下错误:
cannons.c: In function ‘main’:
cannons.c:29:14: warning: initialization from incompatible pointer type [enabled by default]
double *a = &matrix_a;
^
cannons.c:30:14: warning: initialization from incompatible pointer type [enabled by default]
double *b = &matrix_b;
^
cannons.c:31:14: warning: initialization from incompatible pointer type [enabled by default]
double *c = &matrix_c;
^
为什么?
【问题讨论】:
-
是不是因为你传递的参数不是指针?
标签: c arrays pointers multidimensional-array