Razlika med dodelitvijo statične in dinamične pomnilnice

Ključna razlika - dodelitev statične v primerjavi z dinamičnim pomnilnikom
 

Pri programiranju je potrebno hraniti računske podatke. Ti podatki so shranjeni v pomnilniku. Spominske lokacije za shranjevanje podatkov v računalniškem programiranju so znane kot spremenljivke. Spremenljivke imajo določeno vrsto podatkov. Zato je za zagon programov dodeljen pomnilnik. Pomnilnik lahko razporedimo na dva načina. Gre za statično dodeljevanje pomnilnika in dinamično dodelitev spomina. Pri statični dodelitvi pomnilnika, ko je pomnilnik dodeljen, ga ni mogoče spremeniti. Pomnilnika ni mogoče ponovno uporabiti. Toda pri dinamični dodelitvi pomnilnika, ko je pomnilnik dodeljen, ga lahko spremenite. The ključna razlika med statično in dinamično dodelitvijo pomnilnika je to pri statični dodelitvi pomnilnika, ko je dodeljen pomnilnik, je velikost pomnilnika določena, medtem ko je dinamična dodelitev pomnilnika, ko dodelite pomnilnik, lahko velikost pomnilnika spremenite.

VSEBINA

1. Pregled in ključne razlike
2. Kaj je dodelitev statičnega spomina
3. Kaj je dodelitev dinamičnega spomina
4. Podobnosti med dodelitvijo statične in dinamične pomnilnice
5. Primerjava drug ob drugem - dodelitev statične v primerjavi z dinamičnim pomnilnikom v tabeli
6. Povzetek

Kaj je dodelitev statičnega spomina?

Pri statični dodelitvi pomnilnika je dodeljeni pomnilnik fiksiran. Ko dodelite pomnilnik, ga ni mogoče spremeniti. Pomnilnika ni mogoče povečati ali zmanjšati. Na primer v jeziku C, če programer napiše int x, kar pomeni, da lahko spremenljivka shrani celo število. Število bajtov je odvisno od računalnika. Lahko so tudi nizi. Npr. int x [5]; Ta x je niz, ki lahko shrani zaporedje podatkov iste vrste. Shrani lahko pet celih elementov. Ne more shraniti več kot pet elementov. V Javi je mogoče ustvariti matriko kot, int arr [] = new int [5]; Matrika 'arr' lahko shrani 5 celih vrednosti in ne more shraniti več kot to.

Slika 01: Metode dodelitve spomina

Ko dodelimo spremenljivke, ostanejo stalne, ko razporejajo spremenljivke. Po začetni dodelitvi programer ne more spremeniti velikosti pomnilnika. Če je programer dodelil matriko, ki lahko shrani 10 elementov, ni mogoče shraniti vrednosti, večjih od navedenega zneska. Če je programer sprva dodelil matriko, ki lahko vsebuje 10 elementov, vendar je potreboval le 5 elementov, potem pride do izgube spomina. Ta pomnilnik ni več potreben, vendar ga tudi ni mogoče ponovno uporabiti. Statična dodelitev pomnilnika je fiksna, vendar je izvedba preprosta in enostavna, poleg tega pa je hitra.

Kaj je dodelitev dinamičnega spomina?

Včasih je treba spremeniti velikost pomnilnika. Tako se lahko pomnilnik dodeli dinamično. Pomnilnik se lahko poveča ali skrči, odvisno od vstavitev in brisanja podatkovnih elementov. Znana je kot dinamična dodelitev spomina.

V glavi datoteke stdlib.h v jeziku C obstajajo štiri funkcije za dinamično razporeditev pomnilnika. So calloc, malloc, realloc in prosti. Funkcija malloc () dodeli zahtevano velikost bajtov in vrne prazen kazalec, ki kaže prvi bajt dodeljenega pomnilnika. Funkcija calloc () dodeli zahtevano velikost bajtov in jih inicializira na nič. Nato vrne prazen kazalec v spomin. Funkcija free () se uporablja za prerazporeditev dodeljenega pomnilnika. Funkcija realloc lahko spremeni predhodno dodeljeni pomnilnik. Po dodelitvi pomnilnika s funkcijo calloc ali malloc je velikost pomnilnika fiksna, vendar jih je mogoče s funkcijo realloc povečati ali zmanjšati. Na Javi se lahko zbirke uporabljajo za dinamično dodeljevanje pomnilnika.

Glavna prednost dinamične dodelitve pomnilnika je, da prihrani pomnilnik. Programer lahko dodeli pomnilnik ali po potrebi sprosti pomnilnik. Med izvajanjem pomnilnika lahko prerazporedite in osvobodite pomnilnik, kadar ga ne potrebujete. Dinamična dodelitev pomnilnika je prav tako učinkovita kot dodelitev statičnega pomnilnika. Ena pomanjkljivost je, da je izvajanje dinamične dodelitve pomnilnika zapleteno.

Kakšne so podobnosti med dodelitvijo statične in dinamične pomnilnice?

  • Oba sta mehanizma za dodeljevanje pomnilnika.
  • Programer mora oboje izvajati ročno.

Kakšna je razlika med dodelitvijo statične in dinamične pomnilnice?

Dodelitev statične v primerjavi z dinamičnim pomnilnikom

Statična dodelitev pomnilnika je način dodeljevanja pomnilnika in ko je pomnilnik dodeljen, ga popravimo. Dinamična dodelitev pomnilnika je način dodeljevanja pomnilnika in ko je pomnilnik dodeljen, ga lahko spremenimo.
 Spremembe
Pri statični dodelitvi pomnilnika po začetni dodelitvi ni mogoče spremeniti velikosti. Pri dinamični dodelitvi pomnilnika se lahko pomnilnik ustrezno zmanjša ali poveča.
Izvajanje
Statično dodeljevanje pomnilnika je enostavno izvesti. Dinamična dodelitev pomnilnika je zapletena za izvedbo.
 Hitrost
V statičnem pomnilniku je izvajanje dodeljevanja hitrejše od dinamične dodelitve pomnilnika. V dinamičnem pomnilniku je izvajanje dodeljevanja počasnejše od dodeljevanja statičnega pomnilnika.
Uporaba pomnilnika
Pri statični dodelitvi pomnilnika ne morete ponovno uporabiti neporabljenega pomnilnika. Dinamična dodelitev pomnilnika omogoča ponovno uporabo pomnilnika. Programer lahko po potrebi dodeli več pomnilnika. Po potrebi lahko sprosti spomin.

Povzetek - Dodelitev statične v primerjavi z dinamičnim pomnilnikom

Pri programiranju sta statična dodelitev pomnilnika in dinamična dodelitev pomnilnika dva mehanizma za dodeljevanje pomnilnika. Razlika med statično in dinamično dodelitvijo pomnilnika je, da je pri dodelitvi statičnega pomnilnika, ko je dodeljen pomnilnik, velikost pomnilnika fiksna, medtem ko je dinamična dodelitev pomnilnika, ko razporedimo pomnilnik, lahko velikost pomnilnika spremenimo. Programer se lahko odloči, ali naj bo pomnilnik statičen ali dinamičen, odvisno od aplikacije.

Prenesite PDF razporeditve Static vs Dynamic Memory

Lahko prenesete PDF različico tega članka in jo uporabljate za namene brez povezave, kot je navedeno v navodilu. Prenesite PDF različico tukaj: Razlika med dodelitvijo statičnega in dinamičnega pomnilnika

Referenca:

1.Kayal, Somnath. "SOMNATH KAYAL." Razlika med dodelitvijo statičnega spomina in dinamično dodelitvijo spomina, 1. januarja 1970. Na voljo tukaj 
2.tutorialspoint.com. "Nizov v C." Točka. Na voljo tukaj 
3.novatehnologije. Statični pomnilnik vs dinamični pomnilnik | C Language Tutorial, Naresh i Technologies, 19. septembra 2016. Na voljo tukaj