SIGSEGV (Segmentation Fault) means that the program tried to access memory that it does not own; i.e. memory that lies outside any declared variables in the program.
The most common cause is something like this:
int a[100],i;
a[0]=1;
for(i=0;i<100;i++)
a[i+1]=a[i]*2;
In this example, the program runs fine until i=99. Then, the loop accesses a[100], which in fact is one past the end of the array. In Windows, this does not usually trigger an error; under Linux and similar OSes, this will cause the kernel to kill theprogram because it has tried to do something illegal (accessing past the end of program memory).
Check your program for possible off-by-one or similar errors. If you're really stumped, PM me the code.