Re: Cannot use DEBUG_NEW to trace this leak.
- From: "Tom Serface" <tom.nospam@xxxxxxxxxxxxx>
- Date: Wed, 23 Jan 2008 13:52:26 -0800
In addition to what Dave & G said, you don't list what 'n' is equal to so perhaps you are memsetting past the end of the array of std:strings. I am also not sure why you would want to create an array of them that wya, but if you do the memset size should match the new size if you're trying to set an array to all nulls. It doesn't look like you've done anything to protect m_nSize from exceeding someKnownSize either so you could run past the end of your buffer depending on how many times you call add()
I've seen CDCDCD... used in debug mode as a filler for uninitialized memory.
Tom
"Simon" <spambucket@xxxxxxxxxxx> wrote in message news:5vpjc4F1nm1k3U1@xxxxxxxxxxxxxxxxxxxxx
Hi,
I have some old code that I am trying to use in my current project.
It uses standard lib and vectors.
The error I get is as follows.
//---------------
Detected memory leaks!
Dumping objects ->
{193} normal block at 0x016DA0A8, 16 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.
//---------------
it does not tell me where the leak comes from.
I have narrowed down the code as follow where the error could be.
I would rather not change the code as much as possible.
//-------
// in the constructor
m_pData = new std::string[ someKnownSize + 1]
memset( m_pData, 0, (n+1)*sizeof(std::string) );
..
//-------
// The destructor
if( NULL != m_pData )
delete [] ( m_pData );
m_pData = NULL;
m_nSize = 0;
//-------
// in a function
void add( std::string &s, int len )
{
m_pData[m_nSize++] = std::string(s, len ) ;
}
//-------
if I remove the lines m_pData[m_nSize++] = std::string(s, len ) ; then I have no leak.
The file with the error does not use #include "stdafx.h", (but it has #include "windows.h")
and as such I cannot use:
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
What could be the problem and how can I find the leak?
Simon
.
- References:
- Cannot use DEBUG_NEW to trace this leak.
- From: Simon
- Cannot use DEBUG_NEW to trace this leak.
- Prev by Date: Re: New essays: The GradientFill Explorer
- Next by Date: Re: Problems with CoGetClassObjectFromURL(): Access Denied error
- Previous by thread: Re: Cannot use DEBUG_NEW to trace this leak.
- Next by thread: Re: Cannot use DEBUG_NEW to trace this leak.
- Index(es):
Relevant Pages
|