严重错误->c0000374

Critical error -> c0000374

本文关键字:c0000374 gt 严重错误      更新时间:2023-10-16

当我试图编译我的程序时,我得到了错误c0000374…是什么原因导致的?期间,调试器进入initGlobalVectorP()函数,然后崩溃。将数据分配到内存会影响这个问题吗?

FemGrid::FemGrid(int dimension)
{
    this->dimension = dimension;
    initGlobalMatrixH();
    initGlobalVectorP();
}
FemGrid::~FemGrid()
{
    free(*globalMatrixH);
    free(globalMatrixH);
    free(globalVectorP);
}
void FemGrid::initGlobalMatrixH()
{
    globalMatrixH = static_cast<double**>(malloc(sizeof(int) * dimension));
    for (int i = 0; i < dimension; i++)
    {
        globalMatrixH[i] = static_cast<double*>(malloc(sizeof(int) * dimension));
    }

    for (int i = 0; i < dimension; i++)
    {
        for (int j = 0; j < dimension; j++)
        {
            globalMatrixH[i][j] = 0.0;
        }
    }
}
void FemGrid::initGlobalVectorP()
{
    globalVectorP = static_cast<double*>(malloc(sizeof(int) * dimension));
    for (int i = 0; i < dimension; i++)
    {
        globalVectorP[i] = 0.0;
    }
}

malloc中,您使用的是sizeof(int)而不是sizeof(double)

此外,析构函数只删除globalMatrixH的第一行。它应该是遍历每个索引的循环,就像在构造中一样。