调试断言失败:_CrtIsValidHeapPointer(块)
Debug Assertion Failed: _CrtIsValidHeapPointer(block)
我写了一个模拟矩阵的代码。
这个矩阵有一个指向指针的指针,实际上它是一个链表数组。我有两个 - 一个用于行,第二个用于列。
每个数组索引它的矩阵 row/col 第一位置,列表是 rox/col.
中的其余数字
我可以发送代码,但它不短。
我的问题是,在我执行了一些操作之后,我试图在最后删除矩阵 - 它弹出了这个失败的问题。
我尝试更改我的代码,但发现问题出在这里:
delete this->rowsArray;
this->rowsArray = newRowArray; ->here
delete this->colsArray;
this->colsArray = newColArray; ->here
rowsArray 和 colsArray 像这样初始化:
rowsArray = new matrixNode*[lastRowPlace+1];
colsArray = new matrixNode*[lastColPlace+1];
newColsArray 和行也一样...
我希望你能给我一个建议,因为我真的不知道该怎么做:(
**只是忘了说问题只出现在析构函数中...
如果你定义了一个指针,比如new T* [size]
你应该用delete[]
而不是delete
删除它
我写了一个模拟矩阵的代码。 这个矩阵有一个指向指针的指针,实际上它是一个链表数组。我有两个 - 一个用于行,第二个用于列。 每个数组索引它的矩阵 row/col 第一位置,列表是 rox/col.
中的其余数字我可以发送代码,但它不短。
我的问题是,在我执行了一些操作之后,我试图在最后删除矩阵 - 它弹出了这个失败的问题。 我尝试更改我的代码,但发现问题出在这里:
delete this->rowsArray;
this->rowsArray = newRowArray; ->here
delete this->colsArray;
this->colsArray = newColArray; ->here
rowsArray 和 colsArray 像这样初始化:
rowsArray = new matrixNode*[lastRowPlace+1];
colsArray = new matrixNode*[lastColPlace+1];
newColsArray 和行也一样... 我希望你能给我一个建议,因为我真的不知道该怎么做:(
**只是忘了说问题只出现在析构函数中...
如果你定义了一个指针,比如new T* [size]
你应该用delete[]
而不是delete