Hi Arno, Thanks for your reply. Actually, it crashes during the call to 'new' or 'malloc', like I said in libc.so.1. Since it is an array of void*, I have to allocate a void**. Thanks, Kartik -----Original Message----- From: gcc-help-owner@xxxxxxxxxxx [mailto:gcc-help-owner@xxxxxxxxxxx] On Behalf Of Arno Wilhelm Sent: Wednesday, September 15, 2004 5:35 PM Cc: gcc Subject: Re: SIGSEGV in new/malloc hi, when I compile and run the following code it does *not* crash on my machine: 1 2 int main(void) 3 { 4 typedef unsigned char BYTE; 5 int nNewSize = 1; 6 7 void** m_pData = ( void ** ) new BYTE[ nNewSize * sizeof( BYTE *) ]; 8 9 return 0; 10 } 11 So I assume that it crashes when you *use* the void** m_pData pointer? I also do not understand why you declare (and cast) the m_pData pointer to void** since new and malloc return a void* pointer. Maybe that is the reason why it crashes ? cheers, Arno > Hi, > > I am using g++ version 2.95.2. The following code crashes > intermittently > > typedef unsigned char BYTE; > int nNewSize = 1; > > void** m_pData = ( void ** ) new BYTE[ nNewSize * sizeof( BYTE * > ) ]; > > Back trace on gdb does not give me the lib where it crashes > > > > Then, I tried this, > > void** m_pData = ( void ** )malloc( nNewSize * sizeof( > void * ) ); > > and even > > void** m_pData = ( void ** )malloc( 4 ); > > But it always gives a SIGSEGV. bt from gdb in this case gives > > #0 in _smalloc() from /usr/lib/libc.so.1 > #1 in malloc() from /usr/lib/libc.so.1 > > > What am I doing wrong? Have I run out of virtual memory for malloc to > crash? > > TIA, > > Kartik >