Atšķirība starp statiskās un dinamiskās atmiņas sadalījumu

Galvenā atšķirība - statiskā un dinamiskā atmiņas sadalīšana
 

Plānojot, ir jāuzglabā skaitļošanas dati. Šie dati tiek glabāti atmiņā. Datu glabāšanai paredzētās atmiņas vietas datorprogrammēšanā ir zināmas kā mainīgie. Mainīgajiem ir noteikts datu tips. Tāpēc programmu palaišanai tiek atvēlēta atmiņa. Atmiņu var sadalīt divos veidos. Tie ir statiskās atmiņas piešķiršana un dinamiskās atmiņas piešķiršana. Statiskajā atmiņas sadalījumā pēc atmiņas piešķiršanas to nevar mainīt. Atmiņa nav atkārtoti izmantojama. Bet dinamiskās atmiņas sadalē, tiklīdz atmiņa ir piešķirta, to var mainīt. galvenā atšķirība starp statiskās un dinamiskās atmiņas sadalījumu ir tas statiskā atmiņas sadalījumā, kad atmiņa ir piešķirta, atmiņas lielums tiek fiksēts, kamēr dinamiskajā atmiņā - pēc atmiņas piešķiršanas, atmiņas lielumu var mainīt.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir statiskā atmiņas sadalīšana
3. Kas ir dinamiskās atmiņas piešķiršana
4. Statiskās un dinamiskās atmiņas sadalījuma līdzības
5. Salīdzinājums blakus - statiskas un dinamiskas atmiņas sadalījums tabulas formā
6. Kopsavilkums

Kas ir statiskā atmiņas sadalīšana?

Statiskā atmiņas sadalījumā piešķirtā atmiņa ir fiksēta. Kad atmiņa ir piešķirta, to nevar mainīt. Atmiņu nevar palielināt vai samazināt. Piemēram, C valodā, ja programmētājs raksta int x, kas nozīmē, ka mainīgais var saglabāt veselu skaitli. Baitu skaits ir atkarīgs no datora. Var būt arī masīvi. E.g. int x [5]; Šis x ir masīvs, kurā var saglabāt viena veida datu secību. Tajā var saglabāt piecus veselus skaitļus. Tajā nevar saglabāt vairāk kā piecus elementus. Java programmā masīvu var izveidot šādi: int arr [] = jauns int [5]; Masīvs 'arr' var uzglabāt 5 veselu skaitļu vērtības, un nevar uzglabāt vairāk par šo.

01. attēls. Atmiņas piešķiršanas metodes

Statiskā atmiņas sadalījumā, tiklīdz mainīgie ir iedalīti, tie paliek nemainīgi. Pēc sākotnējās iedalīšanas programmētājs nevar mainīt atmiņu. Ja programmētājs ir piešķīris masīvu, kurā var saglabāt 10 elementus, nav iespējams saglabāt vērtības, kas ir lielākas par norādīto summu. Ja sākotnēji programmētājs piešķīra masīvu, kurā var ietilpt 10 elementi, bet nepieciešami tikai 5 elementi, tad notiek atmiņas izšķērdēšana. Šī atmiņa vairs nav vajadzīga, bet nav arī iespējams to atkārtoti izmantot. Statiskā atmiņas iedalīšana ir fiksēta, bet ieviešana ir vienkārša un ērta, kā arī ātra.

Kas ir dinamiskās atmiņas piešķiršana?

Dažreiz ir jāmaina atmiņas lielums. Tātad atmiņu var piešķirt dinamiski. Atkarībā no datu elementu ievietošanas un izdzēšanas atmiņā var pieaugt vai sarukt. To sauc par dinamisko atmiņas sadalījumu.

C valodā, galvenes failā stdlib.h, ir četras funkcijas dinamiskai atmiņas sadalei. Tie ir calloc, malloc, realloc un bezmaksas. Funkcija malloc () piešķir vajadzīgo baitu lielumu un atdod tukšo rādītāju, norādot piešķirtās atmiņas pirmo baitu. Funkcija calloc () piešķir nepieciešamo baitu lielumu un inicializē tos līdz nullei. Pēc tam atmiņā atgriež tukšo rādītāju. Bezmaksas () funkciju izmanto piešķirtās atmiņas pārdalīšanai. Pārvietošanas funkcija var modificēt iepriekš piešķirto atmiņu. Pēc atmiņas iedalīšanas, izmantojot calloc vai malloc, atmiņas lielums tiek fiksēts, bet tos var palielināt vai samazināt, izmantojot relokācijas funkciju. Java valodā kolekcijas var izmantot dinamiskai atmiņas sadalei.

Galvenā dinamiskās atmiņas piešķiršanas priekšrocība ir tā, ka tā ietaupa atmiņu. Programmētājs var iedalīt atmiņu vai atbrīvot atmiņu pēc nepieciešamības. Atmiņu var pārdalīt izpildes laikā, un tā var atbrīvot atmiņu, kad tā nav nepieciešama. Dinamiskā atmiņas sadalīšana ir efektīvāka nekā statiskā atmiņas piešķiršana. Viens trūkums ir tas, ka dinamiskas atmiņas sadales ieviešana ir sarežģīta.

Kādas ir līdzības starp statiskās un dinamiskās atmiņas sadalījumu?

  • Abi ir atmiņas piešķiršanas mehānismi.
  • Programmētājam abi tie jāīsteno manuāli.

Kāda ir atšķirība starp statiskās un dinamiskās atmiņas sadalījumu?

Statiskais un dinamiskās atmiņas sadalījums

Statiskā atmiņas piešķiršana ir atmiņas piešķiršanas metode, un pēc tam, kad atmiņa ir piešķirta, tā tiek fiksēta. Dinamiskā atmiņas piešķiršana ir atmiņas piešķiršanas metode, un, tiklīdz atmiņa ir piešķirta, to var mainīt.
 Modifikācija
Statiskā atmiņas sadalījumā pēc sākotnējās piešķiršanas nav iespējams mainīt izmērus. Dinamiskās atmiņas sadales laikā atmiņu var samazināt vai attiecīgi palielināt.
Īstenošana
Statisko atmiņas sadalījumu ir viegli ieviest. Dinamiskās atmiņas piešķiršana ir sarežģīti īstenojama.
 Ātrums
Statiskā atmiņā piešķiršanas izpilde ir ātrāka nekā dinamiskās atmiņas piešķiršana. Dinamiskajā atmiņā piešķiršanas izpilde ir lēnāka nekā statiskās atmiņas piešķiršana.
Atmiņas izmantošana
Ja statiskā atmiņa tiek piešķirta, neizmantoto atmiņu nevar atkārtoti izmantot. Dinamiska atmiņas sadale ļauj atkārtoti izmantot atmiņu. Programmētājs vajadzības gadījumā var iedalīt vairāk atmiņas. Viņš vajadzības gadījumā var atbrīvot atmiņu.

Kopsavilkums - Statiskais un dinamiskās atmiņas sadalījums

Plānojot, statiskā atmiņas piešķiršana un dinamiskās atmiņas piešķiršana ir divi atmiņas piešķiršanas mehānismi. Atšķirība starp statiskās un dinamiskās atmiņas piešķiršanu ir tāda, ka statiskās atmiņas piešķiršanā, kad atmiņa ir piešķirta, atmiņas lielums tiek fiksēts, bet dinamiskās atmiņas sadalījumā - pēc atmiņas piešķiršanas, atmiņas lielumu var mainīt. Programmētājs atkarībā no lietojumprogrammas var izlemt, vai atmiņai jābūt statiskai vai dinamiskai.

Lejupielādējiet statiskās un dinamiskās atmiņas sadalījuma PDF

Varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistes vajadzībām, kā norādīts citēšanas piezīmē. Lūdzu, lejupielādējiet PDF versiju šeit: Atšķirība starp statiskās un dinamiskās atmiņas sadalījumu

Atsauce:

1.Kayal, Somnath. “SOMNATH KAYAL”. Atšķirība starp statiskās atmiņas un dinamiskās atmiņas sadalījumu, 1970. gada 1. janvāris. Pieejams šeit 
2.tutorialspoint.com. “Masīvi C.” Jēga. Pieejams šeit 
3.nareshtechnologies. Statiskā atmiņa vs dinamiskā atmiņa | C valodas apmācība, Naresh i Technologies, 2016. gada 19. septembris. Pieejams šeit