![]() |
1
0
这是Visual Studio的一篇文章,它试图帮助您(而且成功了,IMO)。 正如Mark Ingraham在 another answer 很久以前,当您释放一块堆内存时,Visual Studio的运行时库将用0xDDDDDDDD填充一块数据。 因此,虽然您没有显示任何正在从列表中删除的代码,但如果有这样的代码,那可能是第一个要查看的地方——至少乍一看,似乎很有可能当您尝试从列表中删除节点时,您正在删除节点所在的内存,但仍然会留下一个指向该已删除内存的指针。 也有可能(但不太可能,IMO)您只是在使用内存,而没有对其进行初始化,并且碰巧遇到了之前分配的内存块,然后将其释放回堆管理器。 然而,底线是你 不要 “处理”访问冲突。相反,您需要在代码中找到导致访问冲突发生的bug,并对其进行修复,使其不再发生。 |
![]() |
JoeZ · Do while循环不会中断 6 年前 |
![]() |
JoeZ · 如果循环不工作。运行时显示重复cout。 6 年前 |
![]() |
Joe · 正在展开宏以进行调试? 6 年前 |
|
Matthew · 自己编译公共库会提高性能吗? 6 年前 |
![]() |
Barry · 在MSVC中处理宏中的额外括号 6 年前 |