调试断言失败!删除

时间:2015-04-28 01:19:42

标签: c++ debugging runtime-error sdl sdl-2

我的朋友和我正在更新我们的俄罗斯方块项目更加动态(允许任何大小的形状而不是只有4个平铺形状),从数组升级到矢量。一切都运转良好,但现在每当形状到达地板时我们都会从标题中得到错误。这是它发生的确切代码行(delete [] currentShape):

main.cpp

    if (currentShape != NULL) {
        delete[] currentShape; // Breaks here
    }
    currentShape = new Shape;

整个项目有点长,所以这里是在Pastebin:

编辑:如果您持有它,它也会在第167行中断,因为它具有相同的代码,但它不应该与该错误有任何关系。

1 个答案:

答案 0 :(得分:0)

当您删除调试堆时,检查指针并检查分配的区域加上一些" guard"该地区之前和之后的空间。它检测到一些错误,例如写出界限。它可能发生在删除步骤之前的任何地方。您必须做的是仔细跟踪和调试对阵列的所有访问,以查找在阵列外部写入的错误。