RE: [Algorithms] Argh....Doing something Dumb
Brought to you by:
vexxed72
From: Michael L. <ml...@mi...> - 2001-10-31 16:39:42
|
You say it's original size is 16, but how is it allocated? You'll get debug assertions on delete if the RTL thinks you're trying to free memory that it didn't allocate. This can happen if you're trying to free static memory, as in: Static Vertex myverts[16]; Vertex * m_pBuffer; m_pBuffer =3D myverts; ExpandBuffer(); Also, it can happen if something stomped on the memory buffer's header, which just precedes the buffer in memory. -----Original Message----- From: Steve Nelson [mailto:sn...@ab...]=20 Sent: Wednesday, October 31, 2001 7:35 AM To: gda...@li... Subject: [Algorithms] Argh....Doing something Dumb Okay, I am dorking around with a VERY simple Vertex Buffer implementation. Just to get started I am using this function to expand it when I need to. void ExpandBuffer() { int nNewSize =3D m_nBufferSize * 2; Vertex *pNewList =3D new Vertex[nNewSize]; //Fill in the old data memcpy((void *)pNewList,(void *)m_pBuffer,sizeof(Vertex) * m_nBufferSize); delete [] m_pBuffer; m_pBuffer =3D pNewList; m_nBufferSize =3D nNewSize; } It blows up on the array delete.=20 m_pBuffer is defined like this:=20 Vertex *m_pBuffer; It's Orginal size is 16 Throws an assertion error. Now normally I can find this kind of stuff easy like, but I think I need someone else to look at it. Any Ideas. Also, Just for the sake of my own personal knowledge. Any interesting methods for handling Vertex Buffers? Mine is pretty simple right now. -Steve Nelson ABC Virtual Communications You cannot achieve the impossible without attempting the absurd.=20 _______________________________________________ GDAlgorithms-list mailing list GDA...@li... https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list |