Liadísimo con recursividad

Llevo tiempo rondando por esta página, usándola como referencia para ver si hay alguna solución a mis problemas. Bien, ¿estoy preparándome para un examen que tengo de programación en Pascal y he intentado por mi propia cuenta hacer el ejercicio de las 8 reinas (aquí en vez de 8 usamos n reinas) y al llegar a las 14 me produce un stack overflow U_U Algún código que use una matriz bidireccional y no unidireccional como usan mis profesores?
Muchas gracias

1 Respuesta

Respuesta
1
El problema viene dado por la memoria, ya que al haber demasiadas llamadas recursivas se sobrepasa el espacio de la pila. Para solucionarlo tendrías que poner lo siguiente al principio del programa:
{$M 65000,0,0}
De todas formas revisa el procedimiento recursivo. Puede ser que la condición de salida sea errónea y no acabe nunca la llamada al procedimiento, y de ahí el mensaje de error.
Gracias, intente usar el {$I-} pero no funcionaba y no sabia como aumentar la memoria del stack directamente. De todos modos, el programa era muy recursivo, es decir, que por cada posible caso hacia una nueva llamada y no contaba con un procedimiento recursivo general. Me pasé toda la noche haciendo la practica desde 0 y lo saque solo ^___^ (al menos ahora se como evitar el stack overflow en nuevos programas :P)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas