WaitFree Var code in assembler window当我在退出程序前将三维动态数组的数组长度设置为0时,我得到了这个异常。如果我没有将其设置为0并退出应用程序,我会在汇编程序代码中的不同位置得到此异常。我想知道是否还有其他人在动态数组方面有这个问题。我还让它在某些大小的动态数组上工作。导致错误dblArray(1000,5,21)的最小数组的大小: double as数组为(1000,25,21),(1000,27,94),(1000,28,94)和(1000,29,94)。阵列(1000,18,21)和(1000,26,94)成功退出。所有数组都是双精度的,如第一个数组中所述。在第一个维度上将length设置为0是否足以释放数组上的内存,还是必须将所有维度都设置为0?此异常是不可捕获的,并且无法停止,因此可执行文件的行为是错误的。数组本身似乎是存在于应用程序整个生命周期中的占位符。它们不是被创建或销毁的。有没有其他方法来声明它们。大多数其他问题都涉及某种类型的异常,比如变量类型错误之类的声明错误。对我来说,这意味着资源或数组被以某种方式捆绑在一起,就好像应用程序在close过程执行之前就已将其释放一样。
发布于 2017-06-21 19:12:12
这种类型的错误表示堆损坏。通常是因为您正在写入超出数组范围的内容。这些写操作可能会损坏堆。
您将需要调试您的程序,以找出它的哪个特定部分正在访问越界。启用范围检查编译器选项,使编译器发出验证数组访问未使用越界索引的运行时代码。
https://stackoverflow.com/questions/44674266
复制相似问题