Vanligvis, når du er koding, må du angi hvor variabler som vil være i programmet, men etter kompilering, kan du ikke endre mengden av dem. Den dynamiske minnet tillater oss å allokere minne (fra haugen) og fri den mens vårt program er i gang.
For at vi skal bruke ny Hotell og slette operatører og noen pekere. Husk alltid å frigjøre minne som er tildelt, ellers vil det være en minnelekkasje. Typene må være den samme Eksempel:. Vi gjør et spill, så vi ber om spilleren hvor mange monstre han ønsker å kjempe med delete [] ptrMonsters; //Husk rekken form av slette. ptrMonsters = NULL; //Vi setter den til null, så det vil ikke peke til minne som ikke er tildelt. returnere 0;} Husk: - Når vi bruker ny, etter vi må bruke slett - Når vi bruker Unngå minnelekkasjer. Situasjon 1. Minnelekkasje} Situasjon 2. flyte * ptrNewVariable = new int.; //Wrong.float* PtrNewVariable = ny dupp; //Right.
int* PtrNewVariable = new int; //Vi har en ny int variabledelete ptrNewVariable; //Vi frigjøre den
nt main () {cout. int nNumber; //Lagre telefonnummeret i en variabel cin >> nNumber; //Vi erklærer en peker som vil peke på en CMonster objekt. CMonster er en hypotetisk klasse. CMonster * ptrMonsters = new CMonster [nNumber]; //For å få tilgang til objekter: ptrMonsters [Indeks] -> Fight (); //Akkurat som en vanlig array. //Når vi er ferdig vi frigjøre minne.
void Søk () {int * ptrNewVariable = new int [5]; //New dynamisk allokert variabel. //Vi brukte ikke slette [] ptrNewVariable. Oopss. //Slutt på funksjonen. Pekeren blir slettet, og minnet adressen er tapt.
int * ptrNewVariable = new int.; //Pekeren holder variable address.ptrNewVariable = new int; //Memory lekkasje her, holder pekeren den nye variabelen adresse, //men mistet den forrige, så du vil ikke være i stand til å frigjøre it.delete ptrNewVariable; //Slett den siste allokert minne, men ikke den første.
iPhone kjernedata Tutorial Part 1