程序停止运行且没有错误

时间:2013-12-03 21:35:37

标签: c++ matrix

我必须通过直接计算来计算矩阵乘积。我写了以下代码:

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} }。
我的代码有问题,或者为什么我没有错误,但也没有结果?矩阵doubleA使用随机变量初始化,B完全为零。
编辑:分配代码:

C

谢谢!

1 个答案:

答案 0 :(得分:0)

如果它正在关闭,那么它可能会崩溃,你应该使用try-catch。将任何捕获的错误的内容打印到日志或控制台。