-1

我有两个二维数组:

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

我正在从文件中读取值:

1 1 2
2 2 -6 4 5 6

在每一行上,前两个数字是数组的行和列大小,之后有足够的(任意)值来使用这些大小填充数组。我想要做的是,在将这些值分配给数组之后,检查数组 A 和 B 的维度是否相同,以便我可以对它们进行矩阵运算(加法、标量乘法等)。

4

2 回答 2

0

为什么不将每行的行/列大小存储到它们的变量中?

int Arow, Acol, Brow, Bcol;

通常,这会起作用:

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

但是您的数组已初始化为固定大小。

你有没有想过使用malloc动态分配AB

于 2013-09-25T21:39:35.247 回答
-1

如果您只是想知道两者是否 == 大小:

#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 回答