在C中使用指针乘以矩阵

时间:2014-11-26 11:58:28

标签: c pointers matrix multiplying

我正在尝试创建一个类似这样的方法:
void Multiply(double *A, double *B, double *C, int N);

这是一个计算C = A * B的函数 A,B和C是NxN(方形)矩阵,我必须通过指针来完成。

我写的代码如下:

int Multiply(double *A, double *B, double *C, int N){
    int i,j,k;
    double sum;
    for (i = 0; i < N; i++) {
      for (j = 0; j < N; j++) {
         sum = 0;
         for (k = 0; k < N; k++) {

            sum = sum + (*(A+i*N+k)) * (*(B+k*N+i));
         }
         *(C+i*N+j) = sum;
      }
   }
}

它不会导致任何错误,也无法正常工作。 我无法看到问题。请有人帮忙吗?

1 个答案:

答案 0 :(得分:0)

i,j的{​​{1}}元素是C的行i乘以A的{​​{1}}列。循环的内核应该是:

j