Re: SIGSEGV in new/malloc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


begin:vcard
fn:Arno Wilhelm
n:Wilhelm;Arno
org:proFILE Computersysteme GmbH
email;internet:arno.wilhelm@xxxxxxxxxxxxx
tel;work:+43 512 341934 29
x-mozilla-html:FALSE
version:2.1
end:vcard


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux