Los arreglos estáticos son cómodos. Los declaras, se quedan ahí y rezas para no haber adivinado mal el tamaño. Pero, ¿qué sucede cuando cambia la entrada? Ahí es donde entran las estructuras de datos dinámicas. Crecen y se reducen según la demanda, extrayendo memoria del montón exactamente cuando la necesitas y devolviéndola cuando no.
En C, esto no es sólo una conveniencia. Es una necesidad para controlar el consumo de memoria. No sólo estás almacenando datos; estás gestionando el espacio físico que ocupa.
Cómo el montón impulsa la asignación de memoria flexible
Piense en el montón como un grupo compartido. A diferencia de la pila, que es rígida y rápida, el montón es flexible pero requiere gestión manual. Las estructuras de datos dinámicas funcionan tomando fragmentos de este montón según sea necesario. No se limitan a sentarse uno al lado del otro en la memoria. Se unen mediante punteros, formando cadenas, árboles o listas.
Cuando un bloque ya no es necesario, vuelve al montón. Este reciclaje es clave. Significa que no está desperdiciando RAM en ranuras vacías en una matriz de tamaño fijo. Estás usando sólo lo que el programa exige en ese segundo específico.
El uso eficiente de la memoria no se trata de ahorrar espacio. Se trata de evitar el accidente que ocurre cuando te quedas sin él.
Para entender realmente cómo funciona esto, debes entender el montón en sí. Es la base. Sin él, los punteros son sólo referencias flotantes a ninguna parte. Con él construyes estructuras que se adaptan.































