Razlika između raspodjele statičke i dinamičke memorije

Ključna razlika - Statička vs dinamička raspoređivanje memorije
 

U programiranju je potrebno pohraniti računske podatke. Ti se podaci pohranjuju u memoriju. Memorijska mjesta za pohranu podataka u računalnom programiranju poznata su kao varijable. Varijable imaju određenu vrstu podataka. Stoga je dodijeljena memorija za pokretanje programa. Memorija se može dodijeliti na dva načina. Oni su statička raspodjela memorije i dinamička raspodjela memorije. U statičkoj raspodjeli memorije, jednom kad je dodijeljena memorija ne može se mijenjati. Memorija nije za višekratnu upotrebu. Ali pri dinamičkoj raspodjeli memorije, nakon dodjeljivanja memorije ona se može promijeniti. ključna razlika između statičke i dinamičke dodjele memorije je to u statičkoj raspodjeli memorije nakon dodjele memorije, veličina memorije se fiksira dok je u dinamičkoj raspodjeli memorije, nakon što je dodijeljena memorija, veličina memorije se može promijeniti.

SADRŽAJ

1. Pregled i ključne razlike
2. Što je dodjela statičke memorije
3. Što je dodjela dinamičke memorije
4. Sličnosti između raspodjele statičke i dinamičke memorije
5. Usporedba - Usporedba statičke vs dinamičke memorije u tabličnom obliku
6. Sažetak

Što je dodjela statičke memorije?

U statičkoj raspodjeli memorije dodijeljena memorija je fiksna. Jednom kada dodijeljena memorija nije je moguće promijeniti. Memorija se ne može povećavati ili smanjivati. Na primjer, na jeziku C ako programer napiše int x, što znači da varijabla može pohraniti cijelu vrijednost. Broj bajtova ovisi o računalu. Može biti i nizova. Npr int x [5]; Ovaj x je niz koji može pohraniti niz podataka koji su iste vrste. Može pohraniti pet cjelobrojnih elemenata. Ne može pohraniti više od pet elemenata. U Javi se niz može stvoriti kao, int arr [] = new int [5]; Niz 'arr' može pohraniti 5 cjelobrojnih vrijednosti i ne može pohraniti više od toga.

Slika 01: Metode raspodjele memorije

U statičkoj raspodjeli memorije, nakon dodjeljivanja varijabli ostaju stalne. Nakon početnog raspoređivanja, programer ne može promijeniti veličinu memorije. Ako je programer dodijelio niz koji može pohraniti 10 elemenata, nije moguće pohraniti vrijednosti veće od navedenog iznosa. Ako je programer u početku dodijelio niz koji može sadržavati 10 elemenata, ali im je potrebno samo 5 elemenata, tada dolazi do gubitka memorije. Ta memorija više nije potrebna, ali je također nije moguće ponovno koristiti. Statička raspodjela memorije je fiksna, ali implementacija je jednostavna i laka, a također je brza.

Što je dodjela dinamičke memorije?

Ponekad je potrebno promijeniti veličinu memorije. Tako se memorija može rasporediti dinamično. Ovisno o umetanju i brisanju podatkovnih elemenata, memorija se može povećati ili smanjiti. Poznat je kao dinamička raspodjela memorije.

U jeziku jezika stdlib.h na jeziku C postoje četiri funkcije za dinamičku raspodjelu memorije. Oni su calloc, malloc, realloc i slobodni. Funkcija malloc () raspoređuje potrebnu veličinu bajtova i vraća poništeni pokazivač, pokazujući prvi bajt dodijeljene memorije. Funkcija calloc () raspoređuje potrebnu veličinu bajtova i inicijalizira ih u nulu. Nakon toga vraća nevažeći pokazivač u memoriju. Funkcija free () koristi se za preraspodjelu dodijeljene memorije. A funkcija realloc može mijenjati prethodno dodijeljenu memoriju. Nakon raspodjele memorije koristeći calloc ili malloc, veličina memorije se fiksira, ali može se povećati ili smanjiti pomoću funkcije realloc. U Javi se zbirke mogu koristiti za dinamičku raspodjelu memorije.

Glavna prednost dinamičke dodjele memorije je što štedi memoriju. Programer može dodijeliti memoriju ili osloboditi memoriju po potrebi. Memorija se tijekom izvođenja može preraspodijeliti i osloboditi memoriju kada nije potrebna. Dinamička dodjela memorije također je učinkovita od statičke raspodjele memorije. Jedan nedostatak je taj što je provođenje dinamičke dodjele memorije složeno.

Koje su sličnosti između raspoređivanja statičke i dinamičke memorije?

  • Oba su mehanizmi raspodjele memorije.
  • Oba programera treba obaviti ručno.

Koja je razlika između raspodjele statičke i dinamičke memorije?

Raspodjela statičke vs dinamičke memorije

Statička raspodjela memorije je metoda raspodjele memorije i nakon što je dodijeljena memorija je fiksna. Dinamičko raspoređivanje memorije je metoda raspodjele memorije, a kad je dodijeljena memorija, ona se može promijeniti.
 Modifikacija
U statičkoj raspodjeli memorije nije moguće promijeniti veličinu nakon početnog raspoređivanja. Kod dinamičke raspodjele memorije memorija se može umanjiti ili povećati na odgovarajući način.
izvršenje
Statička raspodjela memorije je lako implementirati. Dinamička raspodjela memorije je složeno implementirati.
 Ubrzati
U statičkoj memoriji izvršavanje dodjele je brže od dinamičke dodjele memorije. U dinamičkoj memoriji izvršavanje raspodjele je sporije od raspoređivanja statičke memorije.
Korištenje memorije
U statičkoj raspodjeli memorije ne može ponovo upotrijebiti neiskorišćenu memoriju. Dinamično raspoređivanje memorije omogućuje ponovno korištenje memorije. Programer može dodijeliti više memorije kada je potrebno. Može osloboditi memoriju kada je to potrebno.

Sažetak - Raspodjela statičke vs dinamičke memorije

U programiranju statička raspodjela memorije i dinamička raspodjela memorije dva su mehanizma za raspodjelu memorije. Razlika između statičke i dinamičke raspodjele memorije je da se u dodjeli statičke memorije nakon dodjele memorije veličina memorije fiksira dok se u dinamičkoj raspodjeli memorije, nakon što je dodijeljena memorija, veličina memorije može promijeniti. Programer može odlučiti treba li memorija statička ili dinamička ovisno o aplikaciji.

Preuzmite PDF raspored alokacije statičke vs dinamičke memorije

Možete preuzeti PDF verziju ovog članka i koristiti je za izvanmrežne svrhe, prema napomeni. Molimo preuzmite PDF verziju ovdje: Razlika između statičke i dinamičke dodjele memorije

Referenca:

1.Kayal, Somnath. "SOMNATH KAYAL." Razlika između raspoređivanja statičke memorije i dinamičke dodjele memorije, 1. siječnja 1970. Dostupno ovdje 
2.tutorialspoint.com. "Nizovi u C." Točka. Dostupno ovdje 
3.nareshtechnologies. Statička memorija vs dinamička memorija | Vodič za jezike C, Naresh i Technologies, 19. rujna 2016. Dostupno ovdje