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