Diferència entre l'assignació de memòria estàtica i dinàmica

Taula de continguts:

Diferència entre l'assignació de memòria estàtica i dinàmica
Diferència entre l'assignació de memòria estàtica i dinàmica

Vídeo: Diferència entre l'assignació de memòria estàtica i dinàmica

Vídeo: Diferència entre l'assignació de memòria estàtica i dinàmica
Vídeo: MEMORIA VISUAL | Encuentra la IMAGEN correcta 👀 | Ejercicios de Memoria 🧠 Memoria Fotografica 2024, De novembre
Anonim

Diferència clau: assignació de memòria estàtica i dinàmica

En programació, és necessari emmagatzemar dades computacionals. Aquestes dades s'emmagatzemen a la memòria. Les ubicacions de memòria per emmagatzemar dades en la programació d'ordinadors es coneixen com a variables. Les variables tenen un tipus de dades específic. Per tant, la memòria s'assigna per executar els programes. La memòria es pot assignar de dues maneres. Són l'assignació de memòria estàtica i l'assignació de memòria dinàmica. En l'assignació de memòria estàtica, un cop assignada la memòria no es pot canviar. La memòria no és reutilitzable. Però en l'assignació de memòria dinàmica, un cop assignada la memòria es pot canviar. La diferència clau entre l'assignació de memòria estàtica i dinàmica és que en l'assignació de memòria estàtica un cop assignada la memòria, la mida de la memòria es fixa mentre que en l'assignació de memòria dinàmica, un cop assignada la memòria, la mida de la memòria es pot canviar.

Què és l'assignació de memòria estàtica?

En l'assignació de memòria estàtica, la memòria assignada és fixa. Un cop assignada la memòria, no es pot canviar. La memòria no es pot augmentar ni disminuir. Per exemple, en llenguatge C si el programador escriu int x, el que significa que la variable pot emmagatzemar un valor enter. El nombre de bytes depèn de l'ordinador. També hi pot haver matrius. Per exemple. int x [5]; Aquesta x és una matriu que pot emmagatzemar una seqüència de dades que són del mateix tipus. Pot emmagatzemar cinc elements enters. No pot emmagatzemar més de cinc elements. A Java, es pot crear una matriu com a, int arr=new int[5]; La matriu "arr" pot emmagatzemar 5 valors enters i no pot emmagatzemar més que això.

Diferència entre l'assignació de memòria estàtica i dinàmica
Diferència entre l'assignació de memòria estàtica i dinàmica
Diferència entre l'assignació de memòria estàtica i dinàmica
Diferència entre l'assignació de memòria estàtica i dinàmica

Figura 01: Mètodes d'assignació de memòria

En l'assignació de memòria estàtica, un cop assignades les variables, romanen permanents. Després de l'assignació inicial, el programador no pot canviar la mida de la memòria. Si el programador ha assignat una matriu que pot emmagatzemar 10 elements, no és possible emmagatzemar valors superiors a la quantitat especificada. Si el programador va assignar inicialment una matriu que pot contenir 10 elements, però només necessitava 5 elements, llavors hi ha un malbaratament de memòria. Aquesta memòria ja no és necessària, però tampoc és possible reutilitzar-la. L'assignació de memòria estàtica s'ha solucionat, però la implementació és senzilla i fàcil, i també és ràpida.

Què és l'assignació de memòria dinàmica?

De vegades cal canviar la mida de la memòria. Així, la memòria es pot assignar dinàmicament. Depenent de les insercions i eliminacions dels elements de dades, la memòria pot créixer o reduir-se. Es coneix com a assignació de memòria dinàmica.

En llenguatge C, fitxer de capçalera stdlib.h, hi ha quatre funcions per a l'assignació de memòria dinàmica. Són calloc, malloc, realloc i gratuïts. La funció malloc() assigna una mida requerida de bytes i retorna un punter buit, apuntant al primer byte de la memòria assignada. La funció calloc() assigna una mida requerida de bytes i els inicialitza a zero. A continuació, retorna un punter buit a la memòria. La funció free() s'utilitza per reassignar la memòria assignada. I la funció realloc pot modificar la memòria assignada prèviament. Després d'assignar memòria mitjançant calloc o malloc, la mida de la memòria es fixa, però es pot augmentar o reduir mitjançant la funció realloc. A Java, les col·leccions es poden utilitzar per a l'assignació de memòria dinàmica.

El principal avantatge de l'assignació de memòria dinàmica és que estalvia memòria. El programador pot assignar memòria o alliberar-la segons sigui necessari. La memòria es pot reassignar durant l'execució i pot alliberar-la quan no és necessària. L'assignació de memòria dinàmica també és eficient que l'assignació de memòria estàtica. Un desavantatge és que la implementació de l'assignació de memòria dinàmica és complexa.

Quines similituds hi ha entre l'assignació de memòria estàtica i dinàmica?

  • Tots dos són mecanismes d'assignació de memòria.
  • El programador hauria d'implementar-los tots dos manualment.

Quina diferència hi ha entre l'assignació de memòria estàtica i dinàmica?

Assignació de memòria estàtica vs dinàmica

L'assignació de memòria estàtica és un mètode d'assignació de memòria i, un cop assignada la memòria, es corregeix. L'assignació de memòria dinàmica és un mètode d'assignació de memòria i, un cop assignada la memòria, es pot canviar.
Modificació
A l'assignació de memòria estàtica, no es pot canviar la mida després de l'assignació inicial. En l'assignació de memòria dinàmica, la memòria es pot minimitzar o maximitzar en conseqüència.
Implementació
L'assignació de memòria estàtica és fàcil d'implementar. L'assignació de memòria dinàmica és complexa d'implementar.
Velocitat
A la memòria estàtica, l'execució de l'assignació és més ràpida que l'assignació de memòria dinàmica. A la memòria dinàmica, l'execució de l'assignació és més lenta que l'assignació de memòria estàtica.
Ús de la memòria
En l'assignació de memòria estàtica, no es pot reutilitzar la memòria no utilitzada. L'assignació de memòria dinàmica permet reutilitzar la memòria. El programador pot assignar més memòria quan sigui necessari. Pot alliberar la memòria quan sigui necessari.

Resum: assignació de memòria estàtica i dinàmica

En programació, l'assignació de memòria estàtica i l'assignació de memòria dinàmica són dos mecanismes per assignar memòria. La diferència entre l'assignació de memòria estàtica i dinàmica és que en l'assignació de memòria estàtica un cop assignada la memòria, la mida de la memòria es fixa mentre que en l'assignació de memòria dinàmica, un cop assignada la memòria, es pot canviar la mida de la memòria. El programador pot decidir si la memòria ha de ser estàtica o dinàmica segons l'aplicació.

Baixa el PDF de l'assignació de memòria estàtica i dinàmica

Podeu baixar la versió PDF d'aquest article i utilitzar-la per a finalitats fora de línia segons la nota de citació. Baixeu la versió PDF aquí: Diferència entre l'assignació de memòria estàtica i dinàmica

Recomanat: