Segmentation fault significa che il codice che cerchi di far eseguire esce dal segmento .text del programma. Solitamente capita con errori nei puntatori che puntano a locazioni di memoria inaccessibili dal programma.

Dato che usi Linux (o almeno penso), prova a imparare a usare il gdb (GNU debugger). Spesso con questo strumento si fa molta meno fatica!!

Ciao!