我正在尝试将存储在一维数组中的两个矩阵相乘。
我正在使用这个函数,但我的程序崩溃了,我假设是由于越界错误。 但是,我没有(容易)调试的能力,所以我必须确定我的代码是否正确,对我来说似乎是......
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;
}
}
那么,有人能找出我做错了什么吗?
谢谢...
最佳答案
您的意思可能是 <
而不是 <=
在你的for
循环。
关于c++ - 使用一维数组的矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10252621/