堆已经通过代码在各个地方损坏

Dor*_*iva 5 c++ memory heap

我有这个使用CPP创建的多米诺骨牌游戏.在播放时我收到此错误:

Domino.exe中0x76FF5934(ntdll.dll)的未处理异常:0xC0000374:堆已损坏(参数:0x77011378).

相同的错误,但它破坏的代码中的时间和地点是不同的,但它打破的代码总是相同的:

Stone* P = new Stone[numP];
Run Code Online (Sandbox Code Playgroud)

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

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

Qar*_*tar 7

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


Jav*_*492 5

请记住,调试器停止的位置只会告诉您检测到损坏的位置,而不会告诉您损坏发生的位置。因此,我将逐步浏览您的代码并找出您的 Stone 类发生了什么情况。您的班级结构很可能存在缺陷。如果班级不是太大的话,贴一下也许可以诊断出来?