Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Dynaaminen Varaaminen | Dynaaminen Muistinvaraus
C++-Osoittimet ja Viittaukset
Osio 4. Luku 2
single

single

bookDynaaminen Varaaminen

Pyyhkäise näyttääksesi valikon

Dynaaminen muistinvaraus tarkoittaa new- ja delete-operaattoreiden käyttöä. Näiden operaattoreiden avulla voit varata muistia muuttujille ja taulukoille ajonaikaisesti, mikä tarjoaa enemmän joustavuutta kuin staattinen muistinvaraus.

  • new: operaattori, jota käytetään dynaamisesti varaamaan muistia oliolle tai olioiden taulukolle ajonaikana;

  • delete: operaattori, jota käytetään vapauttamaan muistia, joka on aiemmin varattu new-operaattorilla.

Note
Huomio

Osoitin, joka osoittaa dynaamisesti varattuun muistiin, tallennetaan tyypillisesti pinoon, mutta itse muisti varataan keosta.

Luodaksesi kokonaislukumuuttujan dynaamisesti sinun täytyy käyttää osoitinta yhdessä new-avainsanan kanssa.

int *dynamicInteger = new int;

Dynaamisesti varatun muistin vapauttamiseen käytetään delete-operaattoria:

delete dynamicInteger;

Tee tästä itsellesi sääntö: kun käytät new-operaattoria muistin varaamiseen, käytä aina delete-operaattoria sen vapauttamiseen myöhemmin.

Dynaamisesti varatut taulukot

Kun varaat muistia taulukoille dynaamisesti, käytä new[]-operaattoria, ja kun vapautat dynaamisesti varatun taulukon muistin, käytä delete[]-operaattoria.

Note
Huomio

Dynaamisesti varatun muistin poistamatta jättäminen voi johtaa muistivuotoihin, jolloin ohjelma säilyttää muistia, jota ei enää käytetä.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Kuvittele, että työskentelet opettajana ja sinun täytyy laskea opiskelijaryhmän keskiarvo.

Työskentelet myös osoittimien ja funktioiden kanssa, jotka käsittelevät dynaamisesti varattuja taulukoita.

  1. Luo dynaamisesti varattu taulukko grades opiskelijoiden arvosanojen tallentamista varten.
  2. Käytä fillRandomGrades-funktiota täyttääksesi taulukon satunnaisilla arvosanoilla väliltä 60–100.
  3. Täydennä calculateAverage-funktio niin, että se:
    • Alustaa muuttujan sum arvoon 0.
    • Käy taulukon läpi for-silmukalla.
    • Lisää jokaisen arvosanan sum-muuttujaan.
    • Palauttaa keskiarvon jakamalla kokonaissum opiskelijoiden määrällä.
  4. Muista vapauttaa varattu muisti käyttämällä delete[] ohjelman lopussa muistivuotojen välttämiseksi.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt