Diferencia entre la asignación de memoria estática y dinámica

Diferencia entre la asignación de memoria estática y dinámica

Diferencia de clave: asignación de memoria estática vs dinámica
 

En la programación, es necesario almacenar datos computacionales. Estos datos se almacenan en la memoria. Las ubicaciones de memoria para almacenar datos en la programación de computadoras se conocen como variables. Las variables tienen un tipo de datos específico. Por lo tanto, la memoria se asigna para ejecutar los programas. La memoria se puede asignar de dos maneras. Son asignación de memoria estática y asignación de memoria dinámica. En la asignación de memoria estática, una vez que se asigna la memoria, no se puede cambiar. La memoria no es reutilizable. Pero en la asignación de memoria dinámica, una vez que se asigna la memoria, se puede cambiar. El diferencia clave Entre la asignación de memoria estática y dinámica es que En la asignación de memoria estática Una vez que se asigna la memoria, el tamaño de la memoria se fija mientras se asigna la asignación de memoria dinámica, una vez que se asigna la memoria, el tamaño de la memoria se puede cambiar.

CONTENIDO

1. Descripción general y diferencia de claves
2. ¿Qué es la asignación de memoria estática?
3. ¿Qué es la asignación de memoria dinámica?
4. Similitudes entre la asignación de memoria estática y dinámica
5. Comparación de lado a lado: asignación de memoria estática vs dinámica en forma tabular
6. Resumen

¿Qué es la asignación de memoria estática??

En la asignación de memoria estática, la memoria asignada se fija. Una vez que se asigna la memoria, no se puede cambiar. La memoria no puede aumentar o disminuir. Por ejemplo, en el lenguaje C si el programador escribe int x, lo que significa que la variable puede almacenar un valor entero. El número de bytes depende de la computadora. También puede haber matrices. mi.gramo. int x [5]; Esta x es una matriz que puede almacenar una secuencia de datos que son del mismo tipo. Puede almacenar cinco elementos enteros. No puede almacenar más de cinco elementos. En Java, se puede crear una matriz como, int arr [] = new int [5]; La matriz 'ARR' puede almacenar 5 valores enteros y no puede almacenar más que eso.

Figura 01: Métodos de asignación de memoria

En la asignación de memoria estática, una vez que se asignan las variables, siguen siendo permanentes. Después de la asignación inicial, el programador no puede cambiar el tamaño de la memoria. Si el programador asignó una matriz que puede almacenar 10 elementos, no es posible almacenar valores más que la cantidad especificada. Si el programador inicialmente asignó una matriz que puede contener 10 elementos, pero solo necesitaba 5 elementos, entonces hay un desperdicio de memoria. Esa memoria ya no es necesaria, pero tampoco es posible reutilizar la memoria. La asignación de memoria estática es fija, pero la implementación es simple y fácil, y también es rápida.

¿Qué es la asignación de memoria dinámica??

A veces es necesario cambiar el tamaño de la memoria. Entonces la memoria se puede asignar dinámicamente. Dependiendo de las inserciones y eliminaciones de los elementos de datos, la memoria puede crecer o reducirse. Se conoce como asignación de memoria dinámica.

En lenguaje C, stdlib.h Archivo de encabezado, hay cuatro funciones para la asignación de memoria dinámica. Son calloc, malloc, reasloc y gratis. La función malloc () asigna un tamaño requerido de bytes y devuelve un puntero vacío, apuntando el primer byte de la memoria asignada. La función Calloc () asigna un tamaño requerido de bytes y los inicializa a cero. Luego devuelve un puntero vacío a la memoria. La función libre () se usa para reasignar la memoria asignada.  Y la función REALLOC puede modificar la memoria previamente asignada. Después de asignar memoria usando Calloc o Malloc, el tamaño de la memoria se fija, pero se puede aumentar o disminuir usando la función RealLoc. En Java, las colecciones se pueden usar para la asignación de memoria dinámica.

La principal ventaja de la asignación de memoria dinámica es que ahorra memoria. El programador puede asignar memoria o liberar la memoria según sea necesario. La memoria se puede reasignar durante la ejecución y puede liberar la memoria cuando no es necesario. La asignación de memoria dinámica también es eficiente que la asignación de memoria estática. Una desventaja es que la implementación de la asignación de memoria dinámica es compleja.

¿Cuáles son las similitudes entre la asignación de memoria estática y dinámica??

  • Ambos son mecanismos de asignación de memoria.
  • Ambos deben ser implementados por el programador manualmente.

¿Cuál es la diferencia entre la asignación de memoria estática y dinámica??

Asignación de memoria estática vs dinámica

La asignación de memoria estática es un método para asignar memoria, y una vez que se asigna la memoria, se soluciona. La asignación de memoria dinámica es un método para asignar memoria, y una vez que se asigna la memoria, se puede cambiar.
 Modificación
En la asignación de memoria estática, no es posible cambiar el tamaño después de la asignación inicial. En la asignación de memoria dinámica, la memoria se puede minimizar o maximizar en consecuencia.
Implementación
La asignación de memoria estática es fácil de implementar. La asignación de memoria dinámica es compleja para implementar.
 Velocidad
En la memoria estática, la ejecución de la asignación es más rápida que la asignación de memoria dinámica. En la memoria dinámica, la ejecución de la asignación es más lenta que la asignación de memoria estática.
Utilización de memoria
En la asignación de memoria estática, no puede reutilizar la memoria no utilizada. La asignación de memoria dinámica permite reutilizar la memoria. El programador puede asignar más memoria cuando sea necesario . Puede liberar la memoria cuando sea necesario.

Resumen - Asignación de memoria estática vs dinámica

En la programación, la asignación de memoria estática y la asignación de memoria dinámica son dos mecanismos para asignar memoria. La diferencia entre la asignación de memoria estática y dinámica es que en la asignación de memoria estática Una vez que se asigna la memoria, el tamaño de la memoria se fija mientras que en la asignación de memoria dinámica, una vez que se asigna la memoria, el tamaño de la memoria se puede cambiar. El programador puede decidir si la memoria debe ser estática o dinámica dependiendo de la aplicación.

Descargue el PDF de la asignación de memoria dinámica de estática vs

Puede descargar la versión PDF de este artículo y usarla para fines fuera de línea según la nota de cita. Descargue la versión PDF aquí: diferencia entre la asignación de memoria estática y dinámica

Referencia:

1.Kayal, Somnath. "Somnath Kayal."Diferencia entre la asignación de memoria estática y la asignación de memoria dinámica, 1 de enero. 1970. Disponible aquí 
2.punto de tutorial.comunicarse. "Matrices en C." El punto. Disponible aquí 
3.nareshtechnologies. Memoria estática vs Memoria dinámica | C Tutorial de idiomas, Naresh I Technologies, 19 de septiembre. 2016. Disponible aquí