C++ 调试断言失败:_CrtIsValidHeapPointer(块)

C++ 调试断言失败:_CrtIsValidHeapPointer(块),c++,debugging,matrix,assertions,C++,Debugging,Matrix,Assertions,我写了一个模拟矩阵的代码。 这个矩阵有一个指向指针的指针,实际上它是一个链表数组。我有两个,一个用于行,另一个用于列。 每个数组的索引都位于矩阵行/列的第一位,列表是rox/列中的剩余编号 我可以发送代码,但不短 我的问题是,在我做了一些动作之后,我试图在最后删除矩阵-它给我弹出了这个失败的问题。 我试图更改我的代码,但我发现问题出在这里: delete this->rowsArray; this->rowsArray = newRowArray; ->here delet

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

我可以发送代码,但不短

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

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


delete this->colsArray;
this->colsArray = newColArray; ->here
rowsArray和colsArray是这样初始化的:

rowsArray=新矩阵节点*[lastRowPlace+1];
colsArray=新矩阵节点*[lastColPlace+1]

newColsArray和row的情况也一样。。。 我希望你能给我一个建议,因为我真的不知道该怎么办:(


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

如果您定义了一个指针,例如
newt*[size]


您应该使用
delete[]删除它
而不是
delete

问题出在其他地方。虽然
rowsArray
分配正确,但在创建
rowsArray
后,您在代码中的某个地方更改了指针。此时,它不再是有效的堆指针。这是否回答了您的问题?您的意思是不是删除?