Galvenā atšķirība - statiskā un dinamiskā atmiņas piešķiršana
Programmēšanā ir nepieciešams saglabāt skaitļošanas datus. Šie dati tiek saglabāti atmiņā. Atmiņas vietas datu glabāšanai datorprogrammēšanā ir pazīstamas kā mainīgie. Mainīgajiem ir noteikts datu tips. Tāpēc atmiņa tiek piešķirta programmu palaišanai. Atmiņu var piešķirt divos veidos. Tie ir statiskā atmiņas piešķiršana un dinamiskā atmiņas piešķiršana. Statiskajā atmiņas piešķiršanā, kad atmiņa ir piešķirta, to nevar mainīt. Atmiņa nav atkārtoti lietojama. Bet dinamiskajā atmiņas piešķiršanā, kad atmiņa ir piešķirta, to var mainīt. Galvenā atšķirība starp statisko un dinamisko 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, savukārt dinamiskajā atmiņas piešķiršanā, kad atmiņa ir piešķirta, atmiņas lielumu var mainīt.
Kas ir statiskā atmiņas piešķiršana?
Statiskajā atmiņas piešķiršanā 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 vesela skaitļa vērtību. Baitu skaits ir atkarīgs no datora. Var būt arī masīvi. Piem. int x [5]; Šis x ir masīvs, kurā var saglabāt viena veida datu secību. Tajā var saglabāt piecus veselu skaitļu elementus. Tajā nevar uzglabāt vairāk par pieciem elementiem. Java programmā masīvu var izveidot kā, int arr=new int[5]; Masīvā “arr” var saglabāt 5 veselus skaitļus, taču nevar saglabāt vairāk par šīm vērtībām.
Attēls 01: Atmiņas piešķiršanas metodes
Statiskajā atmiņas piešķiršanā, kad mainīgie ir piešķirti, tie paliek pastāvīgi. Pēc sākotnējās piešķiršanas programmētājs nevar mainīt atmiņas izmēru. Ja programmētājs ir piešķīris masīvu, kurā var saglabāt 10 elementus, nav iespējams saglabāt vērtības, kas pārsniedz norādīto daudzumu. Ja programmētājs sākotnēji piešķīra masīvu, kurā var būt 10 elementi, bet vajadzēja tikai 5 elementus, tad ir atmiņas zudums. Šī atmiņa vairs nav vajadzīga, taču arī to nav iespējams atkārtoti izmantot. Statiskā atmiņas piešķiršana ir fiksēta, taču ieviešana ir vienkārša un vienkārša, kā arī ātra.
Kas ir dinamiskā atmiņas piešķiršana?
Dažreiz ir nepieciešams mainīt atmiņas lielumu. Tātad atmiņu var piešķirt dinamiski. Atkarībā no datu elementu ievietošanas un dzēšanas atmiņa var palielināties vai samazināties. To sauc par dinamisko atmiņas piešķiršanu.
C valodā galvenes failā stdlib.h ir četras funkcijas dinamiskai atmiņas piešķiršanai. Tie ir calloc, malloc, realloc un bezmaksas. Funkcija malloc () piešķir nepieciešamo baitu lielumu un atgriež tukšo rādītāju, norādot uz piešķirtās atmiņas pirmo baitu. Funkcija calloc () piešķir nepieciešamo baitu lielumu un inicializē tos līdz nullei. Pēc tam atgriež atmiņā tukšo rādītāju. Funkciju free () izmanto, lai pārdalītu piešķirto atmiņu. Un realloc funkcija var mainīt iepriekš piešķirto atmiņu. Pēc atmiņas piešķiršanas, izmantojot calloc vai malloc, atmiņas apjoms tiek fiksēts, taču tos var palielināt vai samazināt, izmantojot funkciju realloc. Java versijā kolekcijas var izmantot dinamiskai atmiņas piešķiršanai.
Galvenā dinamiskās atmiņas piešķiršanas priekšrocība ir tā, ka tā ietaupa atmiņu. Programmētājs var piešķirt atmiņu vai atbrīvot atmiņu, ja nepieciešams. Atmiņu izpildes laikā var pārdalīt, un tā var atbrīvot atmiņu, kad tā nav nepieciešama. Dinamiskā atmiņas piešķiršana ir arī efektīvāka nekā statiskā atmiņas piešķiršana. Viens no trūkumiem ir tas, ka dinamiskās atmiņas piešķiršanas ieviešana ir sarežģīta.
Kādas ir līdzības starp statisko un dinamisko atmiņas piešķiršanu?
- Abi ir atmiņas piešķiršanas mehānismi.
- Abus programmētājam vajadzētu ieviest manuāli.
Kāda ir atšķirība starp statisko un dinamisko atmiņas piešķiršanu?
Statiskā pret dinamisko atmiņas piešķiršanu |
|
Statiskā atmiņas piešķiršana ir atmiņas piešķiršanas metode, un, tiklīdz 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 | |
Statiskajā atmiņas piešķiršanā nav iespējams mainīt izmērus pēc sākotnējās piešķiršanas. | Dinamiskajā atmiņas piešķiršanā atmiņu var attiecīgi samazināt vai palielināt. |
Ieviešana | |
Statiskās atmiņas piešķiršanu ir viegli ieviest. | Dinamiskās atmiņas piešķiršanu ir sarežģīti ieviest. |
Ātrums | |
Statiskajā atmiņā piešķiršanas izpilde ir ātrāka nekā dinamiskā 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 | |
Statiskajā atmiņas piešķiršanā nevar atkārtoti izmantot neizmantoto atmiņu. | Dinamiskā atmiņas piešķiršana ļauj atkārtoti izmantot atmiņu. Ja nepieciešams, programmētājs var piešķirt vairāk atmiņas. Viņš var atbrīvot atmiņu, kad nepieciešams. |
Kopsavilkums - statiskā pret dinamisko atmiņas piešķiršanu
Programmēšanā statiskā atmiņas piešķiršana un dinamiskā atmiņas piešķiršana ir divi atmiņas piešķiršanas mehānismi. Atšķirība starp statisko un dinamisko 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, savukārt dinamiskajā atmiņas piešķiršanā, kad atmiņa ir piešķirta, atmiņas lielumu var mainīt. Programmētājs var izlemt, vai atmiņai jābūt statiskai vai dinamiskai atkarībā no lietojumprogrammas.
Lejupielādējiet statiskās un dinamiskās atmiņas piešķiršanas PDF failu
Varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistē saskaņā ar atsauces piezīmi. Lūdzu, lejupielādējiet PDF versiju šeit: Statiskās un dinamiskās atmiņas piešķiršanas atšķirība