I grunnleggende C + + programmering, variabler og arrayer er deklarert av programmerer direkte i koden . Men når du bygger datastrukturer som dynamisk skalering matriser , må programmereren lære å dynamisk allokere minne under kjøring av kode. Arrays tildelt på denne måten har noen fordeler, for eksempel ikke-konstant lengde på erklæringen. Programmereren kan tildele matriser av skalare datatyper og brukervennlig opprettet klasser identisk . Ved hjelp av pekere og søkeord som er innebygd i standard bibliotek , C + + gjør hukommelse tildeling og sletting grei. Du trenger
Text Editor
C /C + + Compiler (for eksempel Microsoft Visual Studio eller GCC )
Vis flere instruksjoner
en
Lag en peker på data skriver array vil inneholde . For eksempel , som dynamisk oppretter en matrise av heltall , må et heltall pekeren eksisterer for å referere til matrise:
int * arr_ptr ;
Pekeren " arr_ptr " vil nå tillate en programmerer å referere dyp minnet under utførelsen .
2
Bruk pekeren tildele minne . Den "nye " søkeord som er spesifikke for C + + biblioteker (og ikke tilgjengelig i standard C ) hevder minnet under utførelsen for bruk av ringer spisser:
arr_ptr = new int [ 6 ];
< p> Her griper den "nye " søkeord en blokk med seks heltall størrelse deler av minnet. Men i motsetning arrays erklært før kjøring, kan dynamiske matriser deklareres med variabel inngang : en
int i = 6;
arr_ptr = new int [i ];
tillater programmereren å lage matriser som kan endre størrelsen basert på behov istedenfor forhåndsbestemt plass betegnelse .
3
tildele en rekke brukervennlige opprettet datatyper . Etter C + + hukommelse tildeling prosedyre , programmerer kan lage matriser av datatyper erklært i separate klasser : en
int i = 5;
newClass * class_ptr ;
class_ptr = new newClass [i ]; .
pekeren " class_ptr " vil referere til en variabel av " newClass " datatype , mest sannsynlig definert i en klasse beskrivelse i en annen fil
4
Slett array. Når en rekke ikke lenger er nødvendig (eller har blitt kopiert til et annet array, muligens under en resizing drift) programmerer bør sørge for å slette den. Allokert minne som ikke er slettet, men ikke lenger referert, kan ta opp verdifull minne og over tid føre til det som kalles en minnelekkasje
int i = 5; .
NewClass * class_ptr ;
class_ptr = new newClass [i ];
slett class_ptr [ ];
nå vil matrisen referert av " class_ptr " skal slettes, og minnet frigjort for andre bruksområder.