-1

私は2つの2次元配列を持っています:

#define MAXSIZE 10
/* ... */
int A[MAXSIZE][MAXSIZE], B[MAXSIZE][MAXSIZE];

ファイルから値を読み込んでいます:

1 1 2
2 2 -6 4 5 6

各行の最初の 2 つの数値は、配列の行と列のサイズであり、その後に、それらのサイズを使用して配列を埋めるのに十分な (任意の) 値が続きます。私がやりたいことは、これらの値を配列に割り当てた後、配列 A と B の次元が同じかどうかを確認して、それらを使って行列演算 (加算、スカラー乗算など) を実行できるようにすることです。

4

2 に答える 2

0

各行の行/列のサイズを変数に格納しないのはなぜですか?

int Arow, Acol, Brow, Bcol;

通常、これは機能します:

int Acol = sizeof(A[0]);
int Arow = sizeof(A) / Acol;

ただし、配列は固定サイズに初期化されています。

malloc動的に割り当てられたAandを使用することを考えましたBか?

于 2013-09-25T21:39:35.247 に答える
-1

2つのサイズが==であるかどうかを単に知りたい場合:

#define MAXSIZE 10
/* ... */
int A[MAXSIZE][MAXSIZE], B[MAXSIZE][MAXSIZE];

int main(void)
{
    int sizea = sizeof(A);
    int sizeb = sizeof(B);
    int result = (sizea == sizeb) ? (1) : (0);
    return 0;

}

各場所に明示的に書き込まなくても、行列は、定義した方法で同じサイズになります。

于 2013-09-25T21:52:02.257 に答える