Heap corruption C++

I am getting a heap corruption error when trying to compile my program. The code in question is a pointer

cparticle * particles. 

It is initialized to NULL and then set to

particles = new cparticle[amount]

I am only using delete once in the destructor, and it is causing windows to trigger a breakpoint. I have attempted to use application verifier, and it give me this info:

===========================================================
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.

=======================================

I am unsure what I am doing wrong, so any help will be appreciated.


The first thing you're doing wrong is you're not using std::vector<particle> .

The second thing is presumably that you're writing to memory past the end of your array of particles.


Have you reproduced this in a small standalone program? Are you sure it's not caused by some other memory violation from before that went undetected until now? Are you using the correct delete operator?

链接地址: http://www.djcxy.com/p/82482.html

上一篇: 我应该使用一个c ++类,有或没有“新”?

下一篇: 堆腐败C ++