c++ - 堆已通过代码在多个地方损坏

标签 c++ memory heap-memory

<分区>

我有这个使用 CPP 创建的多米诺骨牌游戏。 播放时出现此错误:

Unhandled exception at 0x76FF5934 (ntdll.dll) in Domino.exe: 0xC0000374: A heap has been corrupted (parameters: 0x77011378).

同样的错误,但它破坏代码的时间和位置不同, 但它中断的代码总是相同的:

Stone* P = new Stone[numP];

这个代码在各种各样的地方都可以找到,Stone 是我创建的一个类来表示多米诺骨牌。

我不知道出了什么问题,我很确定它与内存有关,但我不知道为什么这条线会导致问题,我不希望你告诉我为什么会这样,因为你可以'看不到完整的代码,但我希望你能尝试帮助我搜索的地方。

最佳答案

堆损坏通常不是由检测到它的代码行引起的。您的代码中很可能还有另一个地方正在发生内存损坏,只有在您尝试分配 Stone 数组时才会检测到。检查缓冲区溢出和您正在写入动态分配内存的其他地方。

关于c++ - 堆已通过代码在多个地方损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609469/

相关文章:

C++ - 自定义矩阵结构

c# - 在与 STL 混合的 C# 中调用非托管 C++ 代码

perl - 计算数百 GB 数据中的子序列

c++ - 从套接字读取到缓冲区

java - 我为了好玩而创建了一个类,但是它很快就耗尽了堆空间?

c++ - 未定义对符号 '<Symbol>' 的引用 ... 添加符号时出错 : DSO Missing From Command Line (With CMake)

c++ - 如何在 C++ 中使用 libmosquitto 和 SSL/TLS 连接到 mqtt 代理

c - 指针被释放但 valgrind 说它不是

c - 内存泄漏,我似乎找不到原因

c - 有什么方法可以防止应用程序在堆损坏时崩溃? - C 编程语言