Cannot use DEBUG_NEW to trace this leak.
- From: "Simon" <spambucket@xxxxxxxxxxx>
- Date: Wed, 23 Jan 2008 21:36:40 +0200
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
.
- Follow-Ups:
- Re: Cannot use DEBUG_NEW to trace this leak.
- From: Joseph M . Newcomer
- Re: Cannot use DEBUG_NEW to trace this leak.
- From: Tom Serface
- Re: Cannot use DEBUG_NEW to trace this leak.
- From: David Wilkinson
- Re: Cannot use DEBUG_NEW to trace this leak.
- From: Giovanni Dicanio
- Re: Cannot use DEBUG_NEW to trace this leak.
- Prev by Date: New funny recruitment video for Microsoft..
- Next by Date: Re: Overrides vs. Messages
- Previous by thread: New funny recruitment video for Microsoft..
- Next by thread: Re: Cannot use DEBUG_NEW to trace this leak.
- Index(es):
Relevant Pages
|