Perdóname si esta es una pregunta tonta, pero me temo que no sé qué es 'la pila'.Lo que, exactamente, es 'The Stack' en lo que respecta a .Net
Sé lo que es 'una pila' y he aprendido los acrónimos FILO/FIFO. Pero cuando la gente dice cosas como 'se asigna un tipo de valor en la pila, no el montón' - Me temo que realmente no sé lo que eso significa.
Cuando introduzco un error de lógica en una función recursiva, no puedo asignar más memoria a 'la pila' y mi aplicación falla ... pero realmente no entiendo de qué se trata.
Traté de encontrar una respuesta para Google, pero solo encontré información sobre 'una pila' y cómo usarla.
Cuando ejecuto una aplicación .Net, ¿crea una sola 'instancia de pila' para actuar como 'The Stack'? He visto rastros de pila que me muestran los niveles de ejecución del código, la mayoría de las veces cuando encuentro una excepción sin manos ... pero todo lo que recuerdo haber podido ver es que los métodos y el orden en que se llamaban ... no lo harían. la pila también tiene todas las variables en el alcance para cada paso de la pila.
Tal vez estoy siendo tonto, pero creo que podría imaginar una situación con una función recursiva en la que sería útil ver el valor anterior de una variable, desde 'la pila' pero sin necesidad de pasar en.
No sé si tiene sentido, es muy tarde. Pero realmente agradecería cualquier información que alguien tenga.
Cuando no puede asignar más memoria, supongo que es causada por tener una recursión infinita, lo que significaría en algún momento, la computadora no tendría suficiente memoria para calcular la recursión. –
La frase * "Un tipo de valor asignado en la pila" * no es del todo exacto. Consulte aquí para obtener más información: http://stackoverflow.com/questions/1130468/memory-allocation-of-value-types-and-reference-types-in-net-framework –
BTW, por "The Heap vs The Stack" , aquí hay un breve resumen: http://ee.hawaii.edu/~tep/EE160/Book/chap14/subsection2.1.1.8.html –