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

Tartalomjegyzék:

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

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

Videó: Különbség a statikus és a dinamikus memóriafoglalás között
Videó: C++ Haladóknak #4 - Statikus tömbök és mutatók kapcsolata 2024, Július
Anonim

Kulcskülönbség – Statikus vs dinamikus memóriafoglalás

A programozásban szükség van a számítási adatok tárolására. Ezek az adatok a memóriában tárolódnak. A számítógépes programozásban az adatok tárolására szolgáló memóriahelyeket változóknak nevezzük. A változóknak meghatározott adattípusuk van. Ezért a memória le van foglalva a programok futtatásához. A memória kétféleképpen allokálható. Ezek a statikus memóriafoglalás és a dinamikus memóriafoglalás. A statikus memóriafoglalás során a memória lefoglalása után nem módosítható. A memória nem újrafelhasználható. De a dinamikus memóriakiosztásnál a memória lefoglalása után megváltoztatható. A statikus és dinamikus memóriafoglalás közötti fő különbség az, hogy a statikus memóriafoglalásnál a memória lefoglalása után a memória mérete rögzített, míg a dinamikus memóriakiosztásnál a memória lefoglalása után a memória mérete módosítható.

Mi az a statikus memóriafoglalás?

A statikus memóriafoglalásnál a lefogl alt memória rögzített. A memória lefoglalása után nem módosítható. A memória nem növelhető vagy csökkenthető. Például C nyelvben, ha a programozó int x-et ír, ami azt jelenti, hogy a változó egész számot tud tárolni. A bájtok száma a számítógéptől függ. Lehetnek tömbök is. Például. int x [5]; Ez az x egy tömb, amely azonos típusú adatok sorozatát képes tárolni. Öt egész elemet képes tárolni. Nem tárolhat ötnél több elemet. Java-ban egy tömb a következőképpen hozható létre: int arr=new int[5]; Az „arr” tömb 5 egész értéket tud tárolni, és ennél többet nem.

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

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

A statikus memóriafoglalás során a változók lefoglalása után állandóak maradnak. A kezdeti kiosztás után a programozó nem tudja átméretezni a memóriát. Ha a programozó kiosztott egy tömböt, amely 10 elem tárolására alkalmas, akkor a megadott mennyiségnél több értéket nem lehet tárolni. Ha a programozó kezdetben olyan tömböt jelölt ki, amely 10 elemet tartalmazhat, de csak 5 elemre volt szüksége, akkor memóriapazarlásról van szó. Erre a memóriára már nincs szükség, de a memória újrafelhasználása sem lehetséges. A statikus memóriafoglalás rögzített, de a megvalósítás egyszerű és könnyű, ráadásul gyors is.

Mi az a dinamikus memóriafoglalás?

Néha módosítani kell a memória méretét. Így a memória dinamikusan allokálható. Az adatelemek beszúrásától és törlésétől függően a memória növekedhet vagy csökkenhet. Dinamikus memóriafoglalásként ismert.

A C nyelvben, az stdlib.h fejlécfájlban négy funkció létezik a dinamikus memóriafoglaláshoz. Ezek calloc, malloc, realloc és ingyenesek. A malloc() függvény lefoglal egy szükséges méretű bájtot, és egy üres mutatót ad vissza, amely a lefogl alt memória első bájtjára mutat. A calloc() függvény lefoglalja a szükséges méretű bájtokat, és nullára inicializálja. Ezután egy üres mutatót ad vissza a memóriába. A free() függvény a lefogl alt memória újrafoglalására szolgál. A realloc függvény pedig módosíthatja a korábban lefogl alt memóriát. A memória calloc vagy malloc használatával történő lefoglalása után a memória mérete fix, de a realloc függvény segítségével növelhető vagy csökkenthető. Java nyelven a gyűjtemények használhatók dinamikus memóriafoglaláshoz.

A dinamikus memóriakiosztás fő előnye, hogy memóriát takarít meg. A programozó szükség szerint lefoglalhat memóriát vagy felszabadíthatja a memóriát. A memória a végrehajtás során újra lefoglalható, és felszabadíthatja a memóriát, ha nincs rá szükség. A dinamikus memóriafoglalás szintén hatékonyabb, mint a statikus memóriafoglalás. Az egyik hátrány az, hogy a dinamikus memóriafoglalás megvalósítása bonyolult.

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

  • Mindkettő memóriakiosztási mechanizmus.
  • Mindkettőt manuálisan kell megvalósítania a programozónak.

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

Statikus vs dinamikus memóriafoglalás

A statikus memóriafoglalás a memória lefoglalásának egyik módja, és a memória lefoglalása után rögzítésre kerül. A dinamikus memóriafoglalás a memória lefoglalásának egyik módja, és a memória lefoglalása után módosítható.
Módosítás
Statikus memóriafoglalás esetén a kezdeti lefoglalás után nem lehet átméretezni. A dinamikus memóriakiosztásnál a memória ennek megfelelően minimalizálható vagy maximalizálható.
Megvalósítás
A statikus memóriafoglalás könnyen megvalósítható. A dinamikus memóriafoglalás megvalósítása bonyolult.
Sebesség
A statikus memóriában az allokáció végrehajtása gyorsabb, mint a dinamikus memóriafoglalás. A dinamikus memóriában az allokáció végrehajtása lassabb, mint a statikus memóriafoglalás.
Memóriahasználat
Statikus memóriafoglalás esetén a fel nem használt memória nem használható fel újra. A dinamikus memóriafoglalás lehetővé teszi a memória újrafelhasználását. A programozó szükség esetén több memóriát foglalhat le. Szükség esetén felszabadíthatja a memóriát.

Összefoglaló – Statikus vs dinamikus memóriafoglalás

A programozásban a statikus memóriafoglalás és a dinamikus memóriafoglalás a memóriafoglalás két mechanizmusa. A statikus és dinamikus memóriafoglalás közötti különbség az, hogy a statikus memóriakiosztásnál a memória lefoglalása után a memória mérete rögzített, míg a dinamikus memóriakiosztásnál a memória lefoglalása után a memória mérete módosítható. A programozó az alkalmazástól függően eldöntheti, hogy a memória statikus vagy dinamikus legyen.

Töltse le a statikus és dinamikus memóriafoglalás PDF-fájlját

Letöltheti ennek a cikknek a PDF-verzióját, és offline célokra használhatja az idézet jegyzetének megfelelően. Kérjük, töltse le a PDF verziót innen: Különbség a statikus és dinamikus memóriafoglalás között

Ajánlott: