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

Share:
18,822
Tom Teman
Author by

Tom Teman

Software Developer @ WatchDox SOreadytohelp

Updated on June 12, 2022

Comments

  • Tom Teman
    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...