我的朋友和我正在更新我们的俄罗斯方块项目更加动态(允许任何大小的形状而不是只有4个平铺形状),从数组升级到矢量。一切都运转良好,但现在每当形状到达地板时我们都会从标题中得到错误。这是它发生的确切代码行(delete [] currentShape):
main.cpp
if (currentShape != NULL) {
delete[] currentShape; // Breaks here
}
currentShape = new Shape;
整个项目有点长,所以这里是在Pastebin:
编辑:如果您持有它,它也会在第167行中断,因为它具有相同的代码,但它不应该与该错误有任何关系。
答案 0 :(得分:0)
当您删除调试堆时,检查指针并检查分配的区域加上一些" guard"该地区之前和之后的空间。它检测到一些错误,例如写出界限。它可能发生在删除步骤之前的任何地方。您必须做的是仔细跟踪和调试对阵列的所有访问,以查找在阵列外部写入的错误。