Matrix multiplication using 1d arrays
18,822
Solution 1
Chances are you mean <
instead of <=
in your for
loops.
Solution 2
Try to use i < rA
, j < cB
, k < rB
in your for
Comments
-
Tom Teman almost 2 years
I'm trying to multiply two matrices stored inside 1d arrays.
I'm using this function, but my program crashes, I assume due to an out of bounds error. However, I have no (easy) ability to debug, so I have to decide if my code is correct, and to me it seems it is...
void SampleUtils::multiplyMatrices(float* matA, int rA, int cA, float* matB, int rB, int cB, float* matC, int rC, int cC) { for (int i = 0; i <= rA; i++) { for (int j = 0; j <= cB; j++) { float sum = 0.0; for (int k = 0; k <= rB; k++) sum = sum + matA[i * cA + k] * matB[k * cB + j]; matC[i * cC + j] = sum; } }
So, can anyone find out what I did wrong?
Thanks...