1. Starte das Programm doch mit dem Debugger, damit bekommst du sinnvolle Informationen
2. Ein Segfault bedeutet, wie Ceos schon gesagt hat: Du hast in geschützten Speicher geschrieben. In der Regel passiert, dass weil man z.B. einen Null bzw. nicht allokierten Pointer versucht zu dereferenzieren. Es kann auch passieren wenn man über ein Array oder einen C-String herausschreibt. Also mehr Daten reinschreiben will als das Array lang ist.