Heap corruption C++

Heap corruption C++

本文关键字:C++ corruption Heap      更新时间:2023-10-16

当我试图编译我的程序时,我得到一个堆损坏错误。这里的代码是一个指针

cparticle * particles. 

初始化为NULL,然后设置为

particles = new cparticle[amount]

我只在析构函数中使用了一次delete,它导致窗口触发了一个断点。我尝试使用应用程序验证器,它给我这个信息:

===========================================================
VERIFIER STOP 0000000000000013: pid 0x17C0: first chance access violation for current     stack trace 
000000001D54A0A4 : Invalid address being accessed
0000000055741DC6 : Code performing invalid access
000000000025E9D0 : Exception record. Use .exr to display it.
000000000025E4E0 : Context record. Use .cxr to display it.
===========================================================
This verifier stop is continuable. 
After debugging it use `go' to continue.
===========================================================

=======================================
VERIFIER STOP 00000013: pid 0x17C0: First chance access violation for current stack trace. 
1D54A0A4 : Invalid address causing the exception.
55741DC6 : Code address executing the invalid access.
001DF30C : Exception record.
001DF35C : Context record.

=======================================
This verifier stop is continuable.
After debugging it use `go' to continue.
=======================================

我不确定我做错了什么,所以任何帮助都会很感激。

您是否在一个小的独立程序中复制了这个?你确定这不是之前的其他内存侵犯造成的直到现在才被发现吗?您是否使用了正确的删除操作符?

你做错的第一件事就是你没有使用std::vector<particle>

第二件事可能是你在向内存中写入粒子数组的末尾