我必须通过直接计算来计算矩阵乘积。我写了以下代码:
template <typename T>
void multiplicate_straight(T ** A, T ** B, T ** C, int sizeX)
{
T ** D = AllocateDynamicArray2D<T>(sizeX, sizeX);
transpose_matrix(B, D,sizeX);
for(int i = 0; i < sizeX; i++)
{
for(int j = 0; j < sizeX; j++)
{
for(int g = 0; g < sizeX; g++)
{
C[i][j] += A[i][g]*D[j][g];
}
}
}
FreeDynamicArray2D<T>(D);
}
使用size = 12
一切正常,但是当我将值设置为14
时,程序自行关闭而不会抛出任何错误,返回值为0.我的矩阵的数据类型为{{1} }。
我的代码有问题,或者为什么我没有错误,但也没有结果?矩阵double
和A
使用随机变量初始化,B
完全为零。
编辑:分配代码:
C
谢谢!
答案 0 :(得分:0)
如果它正在关闭,那么它可能会崩溃,你应该使用try-catch
。将任何捕获的错误的内容打印到日志或控制台。