es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué este método recursivo causa un error de desbordamiento de pila si no tiene variables?

Tengo un método recursivo como este, que no contiene ninguna variable. ¿Por qué lanza una excepción de desbordamiento de pila?
En el ejemplo anterior, no creé ninguna variable. Si creo una variable (ya sea como parámetro o dentro de un método), entonces es comprensible: se han creado muchas variables en la pila del hilo y debido a la falta de memoria, obtengo un error.
No entiendo, ¿el propio método también se almacena en la pila? ¿Por qué obtengo el error?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, el propio método también se almacena en la pila. Cuando se llama al método recursivamente, cada nueva instancia del método se agrega a la pila hasta que la pila desborda y el tiempo de ejecución lanza una excepción de desbordamiento de pila (StackOverflowException). Cada llamada al método agregará un nuevo marco de pila encima del anterior, lo que eventualmente provocará que la pila se quede sin memoria. Por lo tanto, aunque no hay variables definidas en el método o como parámetros, las llamadas recursivas en sí mismas son suficientes para causar un desbordamiento de pila.

Comments are closed.