Mikä on staattinen allokointi?

Kun kirjoitat tietokonekoodia, sinun on ymmärrettävä monia asioita. Jokainen ohjelmointikieli on erilainen, omalla syntaksilla ja rakenteillaan. Yksi monille ohjelmointikielille yleisistä asioista on muuttujien asettamisen tarve. Muuttujat tallentavat tiedot tavalla, johon voidaan viitata tulevaisuudessa.

Voit määrittää muuttujalle erilaisia ​​arvoja, kuten tekstijonoja, numeroita tai tietojoukkoa, monien muiden asioiden ohella. Monet kielet edellyttävät, että määrität, minkä tyyppiset tiedot tallennetaan muuttujaan, joka rajoittaa sinut esimerkiksi vain numeroihin.

Toinen ohjelmointikielten välillä eroava asia on tarve ilmoittaa muuttujan allokointityyppi. Jotkut kielet eivät vaadi tätä, kun taas toiset ovat tiukkoja. On olemassa kaksi päävaraustyyppiä: staattinen ja dynaaminen.

Staattinen vs. dynaaminen

Staattinen muuttuja on muuttuja, jonka koko määritetään ennen sovelluksen suorittamista. Kääntäjä asettaa sen käännösaikana. Esimerkiksi merkkijono voidaan määrittää, jolla on lopullinen pituus. Kääntäjä varaa sitten staattisesti pitkän merkkijonon tallentamiseen tarvittavan muistitilan.

Vaihtoehtona on dynaaminen allokointi. Tässä muuttujan koon asettaa ohjelma sen ajon aikana. Ohjelmassa on logiikka muuttujalle varatun muistin määrän säätämiseksi, jolloin se voi muuttua ajan myötä, jos tilaa tarvitaan enemmän tai vähemmän. Tämä tarjoaa tyypillisesti enemmän joustavuutta muistin käytössä kuin staattinen varaus, mutta se maksaa jonkin verran suorituskykyä. Yksi dynaamisen allokoinnin tärkeimmistä eduista on, että sitä ei tarvitse allokoida ennen kuin sitä tarvitaan. Muisti voidaan vapauttaa, kun sitä ei enää tarvita, vaikka ohjelma olisi edelleen käynnissä.

Staattisesti allokoidut muuttujat tallennetaan pysyvästi muistiin. Tämä ei tarkoita, etteikö ohjelma voisi muuttaa muuttujaan tallennettua arvoa. Sen sijaan se tarkoittaa, että muuttujan viemää muistin määrää ei voida koskaan muuttaa. Vaikka vaihtaisit muuttujan suuresta arvosta pieneen, et voi vapauttaa mitään nyt tarpeettomasta muistitilasta. Et myöskään voi lisätä käytettävissä olevan tilan määrää. Tämä voi olla ongelma, jos muuttuja on tarkoitettu tallentamaan muuttuvan pituisia käyttäjän syötteitä.

Toiminnot ja aliohjelmat

Staattiset muuttujat tallennetaan pinoon keon sijaan. Tämä tarkoittaa, että ne ovat käytettävissä siinä tapauksessa, jossa ne luotiin. Staattisesti allokoidut muuttujat ohjelman rungossa pysyvät voimassa ja muistissa koko sen ajan, kun sovellus on käynnissä. Tämä johtuu siitä, että sovelluksen pino on aina siellä. Kun erillistä funktiota tai luokkaa kutsutaan, se saa tietueensa pinoon, johon voidaan tallentaa uusia staattisesti allokoituja muuttujia. Näiden muuttujien muisti voidaan vapauttaa, kun luokka on suljettu, kun tietue ponnahtaa pois pinosta.

Johtopäätös

Staattinen varaus tarkoittaa muistitilan varaamista muuttujalle – kääntäjä lukitsee käännöshetkellä tarvittavan tilan määrän. Vaikka muuttujan arvo voi muuttua, sille varattu tilan määrä ei voi muuttua. Tämä raja estää tilan vapautumisen, jos sitä ei tarvita. Se estää myös lisäämästä tilaa, jos sitä tarvitaan. Staattisella allokoinnilla on suorituskykyetu dynaamiseen kohdistamiseen verrattuna, mutta se on vähemmän joustava. Tyypillisesti käytetään sekä staattisia että dynaamisia muuttujia, koska ne molemmat tarjoavat etuja.


Kuinka kloonata kiintolevy

Kuinka kloonata kiintolevy

Nykyaikaisella digitaalisella aikakaudella, jossa data on arvokasta omaisuutta, kiintolevyn kloonaus Windowsissa voi olla ratkaiseva prosessi monille. Tämä kattava opas

Kuinka korjata WUDFRd-ohjain ei latautunut Windows 10:ssä?

Kuinka korjata WUDFRd-ohjain ei latautunut Windows 10:ssä?

Näetkö tietokonetta käynnistettäessä virheilmoituksen, jonka mukaan ohjain WUDFRd ei latautunut tietokoneellesi?

NVIDIA GeForce Experience -virhekoodin 0x0003 korjaaminen

NVIDIA GeForce Experience -virhekoodin 0x0003 korjaaminen

Onko työpöydälläsi NVIDIA GeForce -kokemusvirhekoodi 0x0003? Jos kyllä, lue blogi nähdäksesi kuinka korjata tämä virhe nopeasti ja helposti.

Mikä on SMPS?

Mikä on SMPS?

Tutustu SMPS:ään ja eri teholuokkien merkitykseen ennen kuin valitset SMPS:n tietokoneellesi.

Mitä on eristykseen perustuva turvallisuus?

Mitä on eristykseen perustuva turvallisuus?

Aikoivat syventyä aiheeseen, josta on tulossa yhä tärkeämpi kyberturvallisuuden maailmassa: eristykseen perustuva tietoturva. Tämä lähestymistapa

Automaattisen napsautuksen käyttäminen Chromebookille

Automaattisen napsautuksen käyttäminen Chromebookille

Tänään aioimme perehtyä työkaluun, joka voi automatisoida toistuvia napsautuksia Chromebookillasi: automaattiseen napsautuslaitteeseen. Tämä työkalu voi säästää aikaa ja

Roomba pysähtyy, tarttuu ja kääntyy – korjaa

Roomba pysähtyy, tarttuu ja kääntyy – korjaa

Korjaa ongelma, jossa Roomba-robottiimuri pysähtyy, tarttuu kiinni ja kääntyy jatkuvasti ympäri.

Miksi Chromebookini ei käynnisty?

Miksi Chromebookini ei käynnisty?

Saat vastauksia kysymykseen, miksi Chromebookini ei käynnisty? Tässä hyödyllisessä oppaassa Chromebookin käyttäjille.

Grafiikka-asetusten muuttaminen Steam Deckissä

Grafiikka-asetusten muuttaminen Steam Deckissä

Steam Deck tarjoaa vankan ja monipuolisen pelikokemuksen aivan sormiesi ulottuvilla. Kuitenkin optimoidaksesi pelaamisesi ja varmistaaksesi parhaan mahdollisen

Kellotaulun vaihtaminen Fitbit Versa 4:ssä

Kellotaulun vaihtaminen Fitbit Versa 4:ssä

Muuta Fitbit Versa 4:n kellotaulua saadaksesi kellosi erilaisen ilmeen joka päivä ilmaiseksi. Katso kuinka nopeaa ja helppoa se on.