我有两个二维数组:
#define MAXSIZE 10
/* ... */
int A[MAXSIZE][MAXSIZE], B[MAXSIZE][MAXSIZE];
我正在读取文件中的值:
1 1 2
2 2 -6 4 5 6
在每一行上,前两个数字是数组的行和列大小,之后是使用这些大小填充数组的足够(任意)值。我想要做的是,在将这些值分配给数组后,检查数组A和B的维数是否相同,这样我就可以用它们进行矩阵运算(加法,标量乘法等)。
答案 0 :(得分:0)
为什么不将每行的行/列大小存储到变量中?
int Arow, Acol, Brow, Bcol;
通常,这可行:
int Acol = sizeof(A[0]);
int Arow = sizeof(A) / Acol;
但是你的数组被初始化为固定大小。
您是否考虑过使用malloc
动态分配A
和B
?
答案 1 :(得分:-1)
如果你只是想知道这两个是否== size:
#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;
}
即使您没有明确地写入每个位置,矩阵(您定义它们的方式)也将具有相同的大小。