この関数へのポインタとして渡すために、どのようにして配列を作成できますか?2D配列がCで渡される
void SomeFunction(double *a, double *b, double *c);
私はそうのように私の2D配列を作った(しかし、私はエラーを持っている):
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;
^
なぜ?
あなたが渡している引数がポインタではないからですか? –