What is a "Segmentation Fault???"

KarsinTheHutt

Golden Member
Jun 28, 2000
1,687
0
0
I know it's some sort of C++ program bug, but what is it related to? I suspect it is a memory allocation problem, but I'm not sure... I get this error when I quit the program I wrote.

Does anyone know?
 

gittyup

Diamond Member
Nov 7, 2000
5,036
0
0
A segmentation fault usually occurs when your program is referencing memory that it does not own anymore. Maybe a pointer or object that has been freed already is trying to be referenced, for example..
 

Pretender

Banned
Mar 14, 2000
7,192
0
0
I believe it's the unix/linux way way of telling you your program crashed. Could be anything from a divide by zero to a memory address error.
 

tim0thy

Golden Member
Oct 23, 2000
1,936
0
0
unix' quiet blue screen of death... notice how it doesn't take the server down with it :)
 

PentiumIV

Member
Feb 19, 2001
56
0
0
Segfaults happen when you attempt to reference memory that you were not supposed to reference, for example, the NULL pointer. Memory protection is one of MOST IMPORTANT features of a proper OS.
 

Descartes

Lifer
Oct 10, 1999
13,968
2
0
Segfault?

int main(void)
{
int a[1];
a[1] = 0; // should elicit a seg fault, unless your OS fell asleep

return 0;
}
 

KameLeon

Golden Member
Dec 5, 2000
1,788
1
0
if you're using arrays, check the array sizes. That'll usually cause a segmentation fault..

like Descartes said:
int a[1];
a[1] = 0; // should elicit a seg fault, unless your OS fell asleep


since there's no a[1], It'll cause a segmentation fault. should be a[0]..
 

C1ue1ess

Member
Jun 27, 2000
59
0
0
Seg faults = Hours of frustration trying to find a bug that is really simple, then kicking yourself for doing such a stupid error.