Revisa las lineas 19 y 20:
Estas reservando memoria para 1 caracter, luego le copias 3 y finalmente obtienes una violacion de segmento. Ya que estas en c++ usa el objeto string en vez de las chars, o un objeto contenedor vector de chars. Si es necesario que uses chars entonces reserva memoria para mas de un char:
No he mirado el resto del codigo, prueba a solucionar esto a ver que tal.
Saludos
vosk