Különbség a statikus és a dinamikus memóriakiosztás között

Legfontosabb különbség - statikus és dinamikus memóriakiosztás
 

A programozás során számítási adatokat kell tárolni. Ezeket az adatokat a memória tárolja. Az adatok számítógépes programozáshoz való tárolására szolgáló memóriahelyeket változónak nevezzük. A változóknak egy meghatározott adattípusuk van. Ezért a memóriát a programok futtatásához szánják. A memória kétféle módon osztható el. Ezek statikus memória allokáció és dinamikus memória allokáció. Statikus memóriakiosztás esetén a memória lefoglalása után nem lehet megváltoztatni. A memória nem használható újra. A dinamikus memóriaelosztásban azonban a memória allokálása után meg lehet változtatni. Az kulcs különbség a statikus és a dinamikus memóriaelosztás között ez statikus memória allokációban, ha a memória el van osztva, a memória mérete rögzítve van, míg a dinamikus memória allokációban, miután a memóriát kiosztották, a memória mérete megváltoztatható.

TARTALOMJEGYZÉK

1. Áttekintés és a legfontosabb különbség
2. Mi a statikus memória allokáció?
3. Mi a dinamikus memória allokáció?
4. A statikus és a dinamikus memória allokáció közötti hasonlóságok
5. Side by side összehasonlítás - Statikus és dinamikus memória allokáció táblázatos formában
6. Összegzés

Mi a statikus memória allokáció??

Statikus memóriaelosztás esetén a kiosztott memória rögzítve van. A memória lefoglalása után nem változtatható meg. A memória nem növelhető vagy csökkenthető. Például C nyelven, ha a programozó int x-et ír, ami azt jelenti, hogy a változó egész számot tárolhat. A bájtok száma a számítógéptől függ. Lehetnek tömbök. Például. int x [5]; Ez az x tömb, amely azonos típusú adatsort képes tárolni. Öt egész elemet képes tárolni. Legfeljebb öt elemet képes tárolni. A Java-ban tömb hozható létre: int arr [] = új int [5]; Az 'arr' tömb 5 egész számot tárolhat, és ennél többet nem tud tárolni.

01. ábra: Memóriaelosztási módszerek

A statikus memória allokációban, amint a változók kiosztásra kerülnek, állandóak maradnak. A kezdeti kiosztást követően a programozó nem tudja átméretezni a memóriát. Ha a programozó olyan tömböt rendelt el, amely 10 elemet képes tárolni, akkor nem lehetséges a megadott értéknél nagyobb értékek tárolása. Ha a programozó kezdetben olyan tömböt osztott ki, amely 10 elemet képes tárolni, de csak 5 elemre volt szüksége, akkor memória pazarlás jelentkezik. Erre a memóriára már nincs szükség, de a memória ismételt felhasználása nem lehetséges. A statikus memóriakiosztás rögzített, de a végrehajtás egyszerű és könnyű, és gyors.

Mi a dinamikus memória allokáció??

Időnként meg kell változtatni a memória méretét. Tehát a memória dinamikusan elosztható. Az adatelemek beillesztésétől és törlésétől függően a memória megnőhet vagy csökkenhet. Dinamikus memória allokációnak nevezzük.

A C nyelven, az stdlib.h fejléc fájlban négy funkció található a dinamikus memóriaelosztáshoz. Calloc, malloc, realloc és ingyenesek. A malloc () függvény kioszt egy szükséges méretű bájtot, és egy érvénytelen mutatót ad vissza, mutatva a kiosztott memória első bájtját. A calloc () függvény kioszt egy szükséges méretű bájtot, és nullára inicializálja. Ezután az üres mutatót visszaadja a memóriához. Az ingyenes () függvényt az allokált memória újraelosztására használják. Az realloc funkció módosíthatja az előzőleg kiosztott memóriát. A memória allokálása a calloc vagy malloc használatával rögzítve van, de a memória mérete rögzített, de az realloc funkcióval növelhető vagy csökkenthető. A Java-ban a gyűjtemények dinamikus memóriaelosztáshoz használhatók.

A dinamikus memóriaelosztás fő előnye, hogy memóriát takarít meg. A programozó szükség szerint memóriát foglalhat el vagy szabadíthat fel. A memória átcsoportosítható a végrehajtás során, és felszabadíthatja a memóriát, amikor erre nincs szükség. A dinamikus memória allokáció szintén hatékony, mint a statikus memória allokáció. Az egyik hátrány az, hogy a dinamikus memóriaelosztás megvalósítása összetett.

Milyen hasonlóságok vannak a statikus és a dinamikus memória allokáció között??

  • Mindkettő memóriaelosztási mechanizmus.
  • Mindkettőt a programozónak manuálisan kell végrehajtania.

Mi a különbség a statikus és a dinamikus memóriakiosztás között??

Statikus és dinamikus memóriakiosztás

A statikus memória allokáció egy módszer a memória allokálására, és a memória allokálása után rögzítve van. A dinamikus memóriakiosztás egy olyan módszer, amellyel a memóriát el lehet osztani, és miután a memória el lett osztva, megváltoztatható.
 Módosítás
A statikus memóriaelosztásnál a kezdeti allokáció után nem lehet átméretezni. A dinamikus memóriaelosztásnál a memória minimalizálható vagy ennek megfelelő lehet.
Végrehajtás
A statikus memóriaelosztást könnyű végrehajtani. A dinamikus memóriaelosztás végrehajtása bonyolult.
 Sebesség
A statikus memóriában az allokáció végrehajtása gyorsabb, mint a dinamikus memória allokáció. A dinamikus memóriában az allokáció végrehajtása lassabb, mint a statikus memória allokációja.
Memóriahasználat
Statikus memóriaelosztás esetén nem szabad újra felhasználni a fel nem használt memóriát. A dinamikus memóriaelosztás lehetővé teszi a memória újrafelhasználását. A programozó szükség esetén több memóriát foglalhat el. Felszabadíthatja a memóriát, ha szükséges.

összefoglalás - Statikus és dinamikus memóriakiosztás

A programozás során a statikus memória allokáció és a dinamikus memória allokáció kétféle mechanizmus a memória allokálására. A statikus és a dinamikus memóriaelosztás közötti különbség az, hogy a statikus memória allokációjakor, amikor a memóriát kiosztják, a memória mérete rögzítve van, míg a dinamikus memória allokációjában, miután a memóriát kiosztották, a memória mérete megváltoztatható. A programozó az alkalmazástól függően eldöntheti, hogy a memória statikus vagy dinamikus legyen-e.

Töltse le a Statikus és dinamikus memória allokáció PDF-jét

Letöltheti e cikk PDF verzióját, és offline célokra felhasználhatja, az idézet megjegyzésének megfelelően. Töltse le a PDF verziót itt: Különbség a statikus és a dinamikus memóriakiosztás között

Referencia:

1.Kayal, Somnath. - SOMNATH KAYAL. Különbség a statikus memória allokáció és a dinamikus memória allokáció között, 1970. január 1.. Itt érhető el 
2.tutorialspoint.com. „Tömbök C-ben” A lényeg. Itt érhető el 
3.nareshtechnologies. Statikus memória vs dinamikus memória | C nyelvtanfolyam, Naresh i Technologies, 2016. szeptember 19. Itt érhető el