RE: SIGSEGV in new/malloc

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

 



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
> 





[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