c++ - 调试断言失败 : _CrtIsValidHeapPointer(block)

标签 c++ debugging matrix assertions

我写了一个模拟矩阵的代码。 这个矩阵有一个指向指针的指针,实际上它是一个链表数组。我有两个 - 一个用于行,第二个用于列。 每个数组索引它的矩阵行/列第一位,列表是 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 也是一样的... 我希望你能给我一个建议,因为我真的不知道该怎么做:(

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

最佳答案

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

你应该使用 delete[] 而不是 delete

来删除它

关于c++ - 调试断言失败 : _CrtIsValidHeapPointer(block),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34517069/

相关文章:

c++ - Qt C++ 双因素认证

c++ - 需要帮助查找 Prime Emirp C++ 中的错误

c++ - 时间戳组织的容器

除非最后一条语句很慢,否则python函数无法返回

linux - 使用 GDB 调试设备驱动程序

c++ - 无法从 const char[] 转换为 std :string *

debugging - 是否可以在 Haskell 中将类型强制为类?

r - R中的列向量到矩阵

C:打印数组中某个点的水平、垂直和倾斜值

matrix - 使用cuda乘以数百个矩阵