C++ 编写一个添加两个矩阵的函数 void add_矩阵(int-matrix_1[m][n]、int-matrix_2[m][n]、int-matrix_3[m][n]、int-num行、int-num列) { 对于(int i=0;i
我正在尝试编写一个函数,它可以添加两个矩阵(2-D数组)。下面是我在程序中定义函数的代码片段。我可以发布我的代码的其余部分,但我认为这可能更容易查看 当我运行代码时,它会在以矩阵3开头的行上显示“thread1:EXC_BAD_ACCESS”。我认为问题在于我传递给函数的参数。矩阵1和2在main中填充,矩阵3在main中创建,但为空。C++ 编写一个添加两个矩阵的函数 void add_矩阵(int-matrix_1[m][n]、int-matrix_2[m][n]、int-matrix_3[m][n]、int-num行、int-num列) { 对于(int i=0;i,c++,C++,我正在尝试编写一个函数,它可以添加两个矩阵(2-D数组)。下面是我在程序中定义函数的代码片段。我可以发布我的代码的其余部分,但我认为这可能更容易查看 当我运行代码时,它会在以矩阵3开头的行上显示“thread1:EXC_BAD_ACCESS”。我认为问题在于我传递给函数的参数。矩阵1和2在main中填充,矩阵3在main中创建,但为空。for(int j=0;i
for(int j=0;i
这应该是:
for(int j=0;j
for(int j=0;i
这应该是:
for(int j=0;j
是否通过引用传递矩阵3?(我不确定它是否能解决问题,但…)数组是通过引用自动传递的,所以我认为这不是问题所在m
和n
在哪里定义?这是一个模板函数吗?请记住,当这个函数结束时,您的matrix_3
参数将被丢弃,而不会像Victor指出的那样实际执行任何有用的操作。是的。。我忽略了它!tadman一直在和我赛跑:如果m和n似乎是模板参数,为什么要传递num_rows和num_cols?我还想说,这样的代码非常反C++。通常,您会使用std::vector
在一个简单的模板包装类中存储数据,并编写operator+
来处理添加情况。这意味着a=b+c
适用于任何给定的兼容矩阵实例集。您不想通过引用传递矩阵_3吗?(我不确定它是否能解决问题,但…)数组是通过引用自动传递的,所以我认为这不是问题所在m
和n
在哪里定义?这是一个模板函数吗?请记住,当这个函数结束时,您的matrix_3
参数将被丢弃,而不会像Victor指出的那样实际执行任何有用的操作。是的。。我忽略了它!tadman一直在和我赛跑:如果m和n似乎是模板参数,为什么要传递num_rows和num_cols?我还想说,这样的代码非常反C++。通常,您会使用std::vector
在一个简单的模板包装类中存储数据,并编写operator+
来处理添加情况。这意味着a=b+c
适用于任何一组给定的兼容矩阵实例。哇,真不敢相信我竟然没有领会到这一点。谢谢哇,真不敢相信我没听懂。谢谢
void add_matrices(int matrix_1 [m][n], int matrix_2 [m][n], int matrix_3 [m][n], int num_rows, int num_cols)
{
for (int i = 0; i < num_rows; i++)
{
for (int j = 0; i < num_cols; j++)
{
matrix_3[i][j] = matrix_1[i][j] + matrix_2[i][j];
}
}
} // end of function that adds two matrices