【发布时间】:2020-04-26 14:26:31
【问题描述】:
我无法将由 main 函数初始化的 C++ 中的二维数组传递给 addMatrix 函数。
错误信息
Main.cpp:在函数'int main()'中:Main.cpp:15:23:错误:无法转换'int()[(((sizetype)(((ssizetype)c)+ -1))+ 1) ]' 到 'int' 为 参数 '1' 到 'void addMatrix(int, int*, int, int)'
addMatrix(a,b,r,c);
void addMatrix(int**, int**, int, int);
int main()
{
int r, c, i, j;
cin >> r >> c;
int a[r][c], b[r][c];
// ASSUME HAVE TAKEN INPUTS FROM BOTH THE MATRIX A AND B
addMatrix(a, b, r, c);
}
void addMatrix(int** a, int** b, int r, int c)
{
int i, j, d[r][c];
for(i = 0; i < r; i++)
for(j = 0; j < c; j++)
d[i][j] = a[i][j] + b[i][j];
for(i = 0; i < r; i++)
{
for(j = 0; j < c; j++)
cout << d[i][j] << " ";
cout << endl;
}
}
【问题讨论】:
-
请注意,可变长度数组不是标准的 C++,它们没有包含在那里的答案中。使用适当的多维数组(上面的答案给出了三种方法,具体取决于编译时已知的大小)。
标签: c++ arrays matrix multidimensional-array addition