¿El stackoverflow es lo mismo que un loop infinito? Ó ¿el stackoverflow es la consecuencia de ejecutar un loop infinito?

Alfonso Aguilar Grimaldo

Alfonso Aguilar Grimaldo

Pregunta
studenthace 4 años

¿El stackoverflow es lo mismo que un loop infinito? Ó ¿el stackoverflow es la consecuencia de ejecutar un loop infinito?

4 respuestas
para escribir tu comentario
    Pedro Alvarado Garcia

    Pedro Alvarado Garcia

    studenthace 4 años

    Un Stack overflow es cuando ha usado más memoria para la pila de la que se suponía que debía usar su programa.

    Carlos Alberto Basilio Torres

    Carlos Alberto Basilio Torres

    studenthace 4 años

    imaginate que yo te pongo cajas en los brazos de manera continua y que no paro nunca. Eventualmente llegará un momento en el que se te caigan las cajas. Al momento en el que se te caen las cajas se le llama stackoverflow. Es un momento en el que las instrucciones ya no se pueden almacenar en el call stack.

    Carlos Eduardo Gomez García

    Carlos Eduardo Gomez García

    teacherhace 4 años

    ¡Hola!, no precisamente, el Stack Overflow, como su nombre lo indica es un desbordamiento de la pila, una pila es una estructura de datos muy usada en programación, si aún no estás familiarizado con estos conceptos te recomiendo el Curso de Estructuras de Datos con JavaScript para que profundices en ello :D

    Básicamente, el lenguaje de programación va guardando en un stack cada llamada que se hace a una función, por ejemplo, cuando manejas recursividad, una función se llama a sí misma, esto provoca que nuevas llamadas se vayan añadiendo al stack, ya que nunca termina la llamada a cada función porque es interrumpida por otra llamada a la misma función.

    El stack tiene un límite, y a medida que vas metiendo más y más llamadas este se va llenando, y si superas el límite del stack, este se desborda y es en donde sucede el stack overflow

    Te recomiendo probar el siguiente código en Chrome que provocará un stack overflow, te digo que lo hagas el Chrome para que el mismo navegador mate la ejecución del código y tu computadora no se alente :D

    // Esto generará un desbordamiento de la pila function makingAStackOverflow() { makingAStackOverflow(); console.log("Este console nunca se ejecutará"); }

    Con eso verás que la función nunca termina porque se está llamando a si misma provocando el desbordamiento :D

    Bernardo Ayala Montezuma

    Bernardo Ayala Montezuma

    studenthace 4 años

    Lo segundo que dices me parece que lo define mejor, porque si no ocurriese un Stack Overflow ese ciclo infinito no se dentendría y muy rápidamente te quedarías sin memoria RAM.

Curso de JavaScript Engine (V8) y el Navegador

Curso de JavaScript Engine (V8) y el Navegador

Explora el motor JavaScript V8 y el navegador. Comprende cómo corre y optimiza el código en tiempo real, gestionando memoria y asegurando asincronismo para crear aplicaciones web eficientes y rápidas.

Curso de JavaScript Engine (V8) y el Navegador
Curso de JavaScript Engine (V8) y el Navegador

Curso de JavaScript Engine (V8) y el Navegador

Explora el motor JavaScript V8 y el navegador. Comprende cómo corre y optimiza el código en tiempo real, gestionando memoria y asegurando asincronismo para crear aplicaciones web eficientes y rápidas.