Ei, mano, parece que não tem nenhum bug óbvio no teu código, mas tá dando aquele crash chato, né? Debugar isso pode ser osso, mas saca só algumas dicas que podem ajudar a desenrolar:
Vê se o tal "mapa.txt" tá lá e com dados que funcionam. Às vezes, se der erro na leitura desse arquivo, o programa fica crashando. E revisa as paradas de alocar e liberar memória. Garante que tá fazendo isso direito pra não ter crash por causa de memória.
Também fica ligado nos índices dos arrays pra não sair pegando coisa fora da área. Certifica que os loops e acessos aos arrays tão de boa.
Você tb pode colocar uns tratamentos de erro pras operações de arquivo e memória. Se der ruim na leitura do arquivo ou na memória, o programa tem que segurar a onda em vez de cair.
É noix, qualquer coisa dá um grito!