Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] ¿Consulta, se puede llenar la memoria de pila?

Buenas, la respuesta a la pregunta es stack overflow error, que genera como loop infinito, pero me genera curiosidad, si se puede llenar o sobrepasar el limite de pila, eniendo que es como un lugar en la memoria donde se guardan la variables, pero cuanto espacio tiene este, hasta que llene y no rebase, no se suponiendo por ejemplo que tengo un proyeto extenso y tengo muchas variables o algo asi, para tener en cuenta ese limite.

2 respuestas
solución!

El tamaño "exacto" de la pila depende de tu sistema operativo y del compilador. Generalmente, el compilador es el que asigna el tamaño de la pila (stack), y claro que puedes llenarlo si tienes muchas variables y muchas llamadas a función (especialmente con funciones anidadas). NOTA EXTRA: el tamaño de la pila es proporcional al tamaño de memoria RAM que tengas en tu ordenador.

Es bastante difícil que utilices toda la pila, si lo haces probablemente estés haciendo algo mal con tu código y tengas que optimizarlo, pero si todo está bien, puedes trabajar con el heap, que es memoria dinámica que puede almacenar tus variables y llamadas a función en tiempo de ejecución (nativamente pocos lenguajes te dejan trabajar con el heap, puedes hacerlo en C o C++ si quieres probar un poco).

Claro, la pila como explica la persona arriba depende el compilador y sistema operativo en general es de un megabytes, sin embargo se puede modificar con algunos programas como visual studio community. La pila se llena por lo regular cuando utilizamos funciones recursivas o cuando realizamos grandes proyectos en los cuales necesitamos utilizamos información grande. Y esto nos lleva utilizar vectores, arreglos o clases que requieran almacenar o utilizar la pila completamente. Recorcando como dice el compañero de arriba en lenguajes como C++. Saludos espero te sirva.