Mi az a statikus allokáció?

Számítógépes kód írásakor sok mindent meg kell érteni. Minden programozási nyelv más, saját szintaxis- és struktúrákkal rendelkezik. Az egyik dolog, ami sok programozási nyelvben közös, a változók beállításának szükségessége. A változók olyan módon tárolják az adatokat, amelyekre a jövőben hivatkozni lehet.

Különböző értékeket rendelhet hozzá egy változóhoz, például szöveges karakterláncokhoz, számokhoz vagy adattömbhöz sok egyéb mellett. Sok nyelv megköveteli, hogy deklarálja, milyen típusú adatokat tárol egy változóban, amely például csak számokra korlátozza a felhasználót.

Egy másik dolog, ami különbözik a programozási nyelvek között, az, hogy deklarálni kell egy változó kiosztási típusát. Egyes nyelvek ezt nem követelik meg, míg mások szigorúak. Két fő kiosztási típus létezik: statikus és dinamikus.

Statikus kontra dinamikus

A statikus változó olyan változó, amelynek méretét az alkalmazás futtatása előtt határozzák meg. Fordítási időben állítja be a fordító. Például egy karakterlánc definiálható, amelynek határozott hossza van. A hosszú karakterlánc tárolásához szükséges memóriaterületet ezután statikusan lefoglalja a fordító.

Az alternatíva a dinamikus elosztás. Itt a változó méretét a program futás közben állítja be. A program logikát tartalmaz a változóhoz lefoglalt memória mennyiségének beállításához, lehetővé téve, hogy az idővel megváltozzon, ha több vagy kevesebb helyre van szükség. Ez általában nagyobb rugalmasságot biztosít a memóriahasználatban, mint a statikus kiosztás, de némi teljesítményköltséggel jár. A dinamikus allokáció egyik fő előnye, hogy nem kell lefoglalni, amíg nincs rá szükség. A memória felszabadítható, ha már nincs rá szükség, még akkor is, ha a program még fut.

A statikusan lefoglalt változók állandóan a memóriában tárolódnak. Ez nem jelenti azt, hogy a program nem tudja megváltoztatni a változóban tárolt értéket. Ehelyett azt jelenti, hogy a változó által elfoglalt memória mennyisége soha nem módosítható. Még ha nagy értékről kicsire változtatja is a változót, nem szabadíthatja fel a most felesleges memóriaterületet. A rendelkezésre álló hely mennyiségét sem növelheti. Ez akkor lehet probléma, ha a változót változó hosszúságú felhasználói bemenetek tárolására szánják.

Funkciók és szubrutinok

A statikus változókat a rendszer a veremben tárolja, nem pedig a kupacban. Ez azt jelenti, hogy elérhetőek maradnak abban a példányban, amelyben létrehozták őket. A statikusan lefoglalt változók a program törzsében az alkalmazás teljes futása alatt érvényesek és a memóriában maradnak. Ez azért van, mert az alkalmazás verem mindig ott van. Ha egy külön függvényt vagy osztályt hívunk meg, akkor az megkapja a rekordját a veremben, amelyben új statikusan lefoglalt változók tárolhatók. Ezeknek a változóknak a memóriája felszabadítható az osztály bezárása után, amikor a rekord kikerül a veremből.

Következtetés

A statikus lefoglalás memóriaterületet foglal le egy változó számára – a fordító rögzíti a fordítási időben szükséges helyet. Míg a változó értéke változhat, a számára lefoglalt terület mennyisége nem. Ez a korlátozás megakadályozza, hogy felszabaduljon a hely, ha nincs rá szükség. Azt is megakadályozza, hogy szükség esetén több hely álljon rendelkezésre. A statikus allokáció teljesítményelőnnyel rendelkezik a dinamikus allokációhoz képest, de kevésbé rugalmas. Általában statikus és dinamikus változókat is használnak, mivel mindkettő előnyökkel jár.


Leave a Comment

Hogyan csatlakoztassuk a Windows 11 laptopot projektorhoz/TV-hez

Hogyan csatlakoztassuk a Windows 11 laptopot projektorhoz/TV-hez

Olvassa el ezt a cikket az egyszerű, lépésről lépésre történő folyamatról, amely a Windows 11 és Windows 10 operációs rendszeren történő laptop projektor vagy TV-hez való csatlakoztatásához szükséges.

3D Nyomtatás Alapjai: Karbantartási Tippjei a 3D Nyomtatójához

3D Nyomtatás Alapjai: Karbantartási Tippjei a 3D Nyomtatójához

A 3D nyomtatók karbantartása nagyon fontos a legjobb eredmények eléréséhez. Íme néhány fontos tipp, amit érdemes megjegyezni.

Mi a teendő, ha a Powerbeats Pro nem töltődik az ügyben?

Mi a teendő, ha a Powerbeats Pro nem töltődik az ügyben?

Ha a Powerbeats Pro nem töltődik, használjon másik áramforrást és tisztítsa meg a fülhallgatókat. Töltés közben hagyja nyitva az ügyet.

Canon Pixma MG5220: Szkennelés Tinta Nélkül

Canon Pixma MG5220: Szkennelés Tinta Nélkül

Hogyan lehet engedélyezni a szkennelést a Canon Pixma MG5220-on, ha kifogyott a tinta.

10 Legjobb NAS Tárolóeszköz Otthoni és Professzionális Használatra

10 Legjobb NAS Tárolóeszköz Otthoni és Professzionális Használatra

Akár otthoni, akár irodai NAS-t keresel, nézd meg ezt a legjobb NAS tárolóeszközök listáját.

3D Nyomtatás Alapjai: Kötelező Karbantartási Ellenőrző Lista

3D Nyomtatás Alapjai: Kötelező Karbantartási Ellenőrző Lista

A gépezeted jó állapotban tartása elengedhetetlen. Íme néhány hasznos tipp a 3D nyomtatód csúcsformában tartásához.

Mi az a buborék memória?

Mi az a buborék memória?

A buborékmemória egy nem felejtő mágneses memória formája, amely a 70-es évek elején került kereskedelmi forgalomba. Ismerje meg a buborékmemória előnyeit és történelmét!

Az iPhone feloldása jelszó vagy számítógép nélkül

Az iPhone feloldása jelszó vagy számítógép nélkül

Elfelejtette iPhone-ja zárolási képernyőjének jelszavát? Ebből a cikkből megtudhatja, hogyan oldhatja fel az iPhone feloldását jelszó vagy számítógép nélkül.

Windows 10 laptop csatlakoztatása projektorhoz/TV-hez

Windows 10 laptop csatlakoztatása projektorhoz/TV-hez

Minden, amit tudnia kell a Microsoft Windows 10 laptop TV-hez vagy projektorhoz történő csatlakoztatásáról.

Fájlok elhelyezése a Samsung biztonságos mappába

Fájlok elhelyezése a Samsung biztonságos mappába

A Samsung Secure Folder érzékeny információkat véd, mint jegyzetek, alkalmazások, fájlok, fényképek és videók. Védd adataidat a Samsung Knox segítségével!