Diferencia entre asignación estática y asignación de montón

Asignación estática: la asignación estática es un procedimiento de asignación que se utiliza para la asignación de todos los objetos de datos en tiempo de compilación. En este tipo de asignación, la asignación de objetos de datos se realiza solo en tiempo de compilación. Como en la asignación estática, el compilador decide la extensión del almacenamiento que no se puede cambiar con el tiempo, por lo que es fácil para el compilador conocer las direcciones de estos objetos de datos en los registros de activación en una etapa posterior. La asignación estática se implementa en FORTRAN. 

Asignación de almacenamiento dinámico: la asignación de almacenamiento dinámico es un procedimiento de asignación en el que el almacenamiento dinámico se utiliza para administrar la asignación de memoria. Heap ayuda a administrar la asignación de memoria dinámica. En la asignación de montones, la creación de objetos de datos dinámicos y estructuras de datos también es posible al igual que la asignación de pilas. La asignación de montones supera la limitación de la asignación de pilas. Es posible conservar el valor de las variables incluso después del registro de activación en la estrategia de asignación de pilas, lo que no es posible en la asignación de pilas. Mantiene una lista enlazada para los bloques libres y reutiliza el espacio desasignado utilizando el mejor ajuste. 

La diferencia entre la asignación estática y la asignación de montón es la siguiente:

S. No. Asignación estática Asignación de montón
1. La asignación estática asigna memoria en función del tamaño de los objetos de datos. La asignación de almacenamiento dinámico utiliza el almacenamiento dinámico para administrar la asignación de memoria en tiempo de ejecución.
2. En la asignación estática, no existe la posibilidad de crear estructuras de datos y objetos dinámicos. En la asignación de montones, se crean objetos y estructuras de datos dinámicos.
3. En la asignación estática, los nombres de los objetos de datos se fijan con almacenamiento para el direccionamiento. La asignación de montón asigna un bloque contiguo de memoria a objetos de datos.
4. La asignación estática es una técnica de administración de memoria simple, pero no eficiente. La asignación de almacenamiento dinámico administra la memoria de manera ineficiente.
5. La estrategia de asignación estática es más rápida para acceder a los datos en comparación con la asignación en montón. Si bien la asignación de almacenamiento dinámico es lenta en el acceso, ya que existe la posibilidad de crear agujeros al reutilizar el espacio libre.
6. La asignación estática es económica, es fácil de implementar. Si bien la asignación de almacenamiento dinámico es comparativamente costosa.
7. Se prefiere la asignación de memoria estática en una array. Se prefiere la asignación de memoria en montón en la lista vinculada. 
8.

Ejemplo :

  • ent i;
  • flotador f;

Ejemplo :

  • p = malloc(tamaño(int));

Publicación traducida automáticamente

Artículo escrito por ashushrma378 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *