Saltar al contenido

malloc – ¿Qué es un montón de memoria?

octubre 19, 2021
apple touch icon@2

Presumiblemente te refieres montón desde el punto de vista de la asignación de memoria, no desde el punto de vista de la estructura de datos (el término tiene múltiples significados).

Una explicación muy simple es que el montón es la parte de la memoria donde asignado dinámicamente la memoria reside (es decir, la memoria asignada a través de malloc). La memoria asignada del montón permanecerá asignada hasta que ocurra una de las siguientes situaciones:

  1. La memoria es free‘D
  2. El programa termina

Si se pierden todas las referencias a la memoria asignada (por ejemplo, ya no almacena un puntero), tiene lo que se llama un pérdida de memoria. Aquí es donde aún se ha asignado la memoria, pero ya no tiene una forma fácil de acceder a ella. La memoria filtrada no se puede recuperar para futuras asignaciones de memoria, pero cuando el programa finaliza, el sistema operativo liberará la memoria.

Contrasta esto con apilar memoria que es donde viven las variables locales (las definidas dentro de un método). La memoria asignada en la pila generalmente solo vive hasta que la función regresa (hay algunas excepciones, por ejemplo, variables locales estáticas).

Puede encontrar más información sobre el montón en Este artículo.

close