У меня такая же мысль, как и в большинстве случаев, когда программа, вероятно, делает неправильный доступ к памяти: запустите ее под valgrind.Valgrind найдет и сообщит вам о многих распространенных ошибках до сбоя вашей программы или, в некоторых случаях, даже если она никогда не выйдет из строя.
Если вы не можете запустить valgrind (например, у вашей платформы его нет),Вы могли бы по крайней мере запустить свою программу в отладчике и сказать нам, на какой линии она падает.