Hay dos formas básicas de memoria utilizadas para el almacenamiento temporal de datos: pila y montón.
La memoria de pila se asigna para variables cuando comienza una función y se recupera cuando la función regresa. Se puede asignar memoria de pila adicional durante la ejecución de la función.
La memoria del montón es un poco más permanente. Se puede asignar desde cualquier parte del programa y cuando se llama a la función de asignación de memoria, devuelve una dirección que se almacena en una variable de puntero.
- ¿Cómo hacemos que una selección sea estable?
- ¿Cuáles son algunas de las preguntas famosas al calcular los caminos más cortos (gráficos) usando Dijkstra's, DAG y Bellman-Ford?
- ¿Cuál es una buena estructura de datos para un editor de texto como Word / Google Docs?
- ¿Qué es la recursividad en matemáticas?
- ¿Los árboles binarios / árboles de búsqueda binaria se usan realmente en la práctica o se usan principalmente con fines didácticos?
Esta memoria está disponible para el programa siempre que el programador lo desee. Sin embargo, si la variable de puntero se sobrescribe o la dirección se pierde, entonces ese bit de memoria ya no se puede usar. Es reclamado por el “recolector de basura” (si el programa tiene uno) o forma una “pérdida de memoria” (memoria perdida). Cuando ya no se requiere memoria del almacenamiento dinámico, debe eliminarse correctamente si no hay un recolector de basura.