Edellisessä luvussa todettiin, että automatic-muuttujien
tilanvaraukset tehdään ohjelman ajon aikana.
Varaukset samoin kuin muistialueiden vapauttamiset ovat automaattisia tapahtumia, joista
ohjelmoijan ei tarvitse huolehtia.
Ohjelmoijalla on mahdollisuus kuitenkin varata ja vapauttaa muistia eksplisiittisesti.
C tarjoaa tähän tarkoitukseen funktiot malloc() ja free().
malloc()-funktiolla varataan muistia ja | |
free()-funktiolla vapautetaan malloc():lla varattu muistialue. |
Varaukset tehdään muistialueelta, jota kutsutaan kasaksi
(heap).
Se on muistialue, joka jää vapaaksi sen jälkeen, kun on varattu tilat exe-koodille
sekä ohjelman data- ja pinoalueille.
malloc() ja free() | |
Dynaaminen taulukko |