小编Ben*_*Ben的帖子

调试断言失败:_CrtIsValidHeapPointer(块)

我写了一个模拟矩阵的代码。这个矩阵有一个指向指针的指针,实际上它是一个链表数组。我有两个 - 一个用于行,第二个用于列。每个数组索引其矩阵行/列的第一位,列表是 rox/col 中的其余数字。

我可以发送代码,但它不短。

我的问题是,在我做了一些操作之后,我试图在最后删除矩阵 - 它向我弹出了这个失败的问题。我尝试更改我的代码,发现问题出在这里:

delete this->rowsArray;
this->rowsArray = newRowArray; ->here


delete this->colsArray;
this->colsArray = newColArray; ->here
Run Code Online (Sandbox Code Playgroud)

rowsArray 和 colsArray 像这样初始化:

rowsArray = new matrixNode*[lastRowPlace+1]; colsArray = new matrixNode*[lastColPlace+1];

关于 newColsArray 和 row 也是如此...我希望你能给我一个建议,因为我真的不知道该怎么做:(

**只是忘了说问题就在析构函数处出现......

c++ debugging matrix assertions

4
推荐指数
1
解决办法
3万
查看次数

我的程序跳过if语句

我正在编写一个能够成为矩阵强大功能的程序.正如你所看到的,我试图在for(int n ...)循环中询问n == 0,但是当我正在调试时 - 我看到该程序只是跳过这个条件,甚至没有输入它.我的意思是,如果n == 0,它甚至不会"问"这个问题......

问题是什么?

void Matrix::pow(int power, Matrix & result)
{
    for (int i = 0; i < power-1; i++)
    {
        for (int j = 0; j < rows; j++)
        {
            for (int k = 0; k < cols; k++)
            {
                for (int n = 0; n < cols; n++)
                {
                    if (n==0)
                    {
                        (&result)->_array[i][j] == 0; //Reset result's array.
                    }
                    (&result)->_array[i][j] += this->_array[i][n] * this->_array[n][j];
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ if-statement

-4
推荐指数
1
解决办法
131
查看次数

标签 统计

c++ ×2

assertions ×1

debugging ×1

if-statement ×1

matrix ×1