¡Buenas!
Con semejante caos de código no se donde puede estar el error. Si tienes un error de ejecución lo mas posible es que en algún momento intentes acceder a una posición de memoria incorrecta (que te salgas de los límites de algún vector).
Tienes un montón de variables. Intenta hacer el código mas limpio utilizando funciones. Por ejemplo:
- Una función que dada la posición del caballo y el movimiento que quieres realizar, te diga si el movimiento es correcto o no.
- Una función que te inicialice el tablero.
- Una función que te imprima el tablero.
- Una función, lo mas sencillo es que sea recursiva, que partiendo de una posición inicial realice los movimientos de forma automática hasta que no haya mas posibilidades.
De esta forma tu código estará separado en tareas mas sencillas en las que encontrar errores te resultará mas fácil y será mucho mas facil de leer, ya que cada una de las funciones tendrá unas pocas líneas de código y sus acciones serán muy concretas.
¡Saludos!