We're a community of 1076K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,075,610 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

Segmentation Fault

Hello,

Any ideas why this is giving a segmentation fault?:

#include <iostream>
#include <new>

using namespace std;

struct List {

int A;
int B;
List *next;

};


int main(void) {

int llength;

llength=1111111111;

List *L;

L= new List[llength];

L[37370197].B=-37370197;

delete [] L;

return 0;

}


Cheers

2
Contributors
4
Replies
23 Hours
Discussion Span
2 Years Ago
Last Updated
5
Views
ricky_125
Newbie Poster
3 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

Yes.

More seriously, if you're running this program on a 32-bit machine, you're probably asking for much more memory than the system is capable of providing; and it would not be surprising to learn that an overflow is taking place as part of computing how much memory you need.

arkoenig
Master Poster
711 posts since Jun 2010
Reputation Points: 396
Solved Threads: 110
Skill Endorsements: 7

I thought it should crash out with a bad_alloc exception though?

ricky_125
Newbie Poster
3 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

In a perfect world, it would. In practice, it is not uncommon for implementations to fail to catch integer overflow.

arkoenig
Master Poster
711 posts since Jun 2010
Reputation Points: 396
Solved Threads: 110
Skill Endorsements: 7

So, am I right in saying that if the g++ compiler had the correct implementation, then the above would through a bad_alloc exception instead of a segmentation fault? (and if so, is this something which is likely to be fixed on future releases of the g++ compiler?)

Cheers

ricky_125
Newbie Poster
3 posts since Jan 2011
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

This article has been dead for over three months: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
View similar articles that have also been tagged:
 
© 2013 DaniWeb® LLC
Page rendered in 0.0716 seconds using 2.74MB