【发布时间】:2016-04-03 16:37:40
【问题描述】:
我写了一个模拟矩阵的代码。 这个矩阵有一个指向指针的指针,实际上它是一个链表数组。我有其中两个 - 一个用于行,第二个用于列。 每个数组索引它的矩阵行/列第一位,列表是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 和 row 也一样... 我希望你能给我一个建议,因为我真的不知道该怎么做:(
**只是忘了说问题只是在析构函数中弹出......
【问题讨论】:
-
问题出在其他地方。尽管
rowsArray已正确分配,但您在创建rowsArray后在代码中的某处更改了指针。那时,它不再是有效的堆指针。
标签: c++ debugging matrix assertions