Tom Teman
Tom Teman

Reputation: 2013

Matrix multiplication using 1d arrays

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...

Upvotes: 9

Views: 21191

Answers (2)

qehgt
qehgt

Reputation: 2990

Try to use i < rA , j < cB, k < rB in your for

Upvotes: 7

Fraser
Fraser

Reputation: 78320

Chances are you mean < instead of <= in your for loops.

Upvotes: 12

Related Questions