Yleensä kun olet koodaus, sinun on määritettävä määrä muuttujia, on oman ohjelman, mutta, kun kokoamiseen, et voi muuttaa määrää niistä. Dynaaminen muisti antaa meille mahdollisuuden varata muistia (kasasta) ja vapaa, se kun meidän ohjelma on käynnissä.
Tästä aiomme käyttää uusi ja poistaa operaattorit ja jotkut osoittimia. Muista aina vapauttaa varatun muistin, muuten tulee muistivuoto. Tyypit on oltava sama. Esimerkki: Teemme peli, joten pyydämme pelaaja kuinka monta hirviöitä hän haluaisi taistella. poistaa [] ptrMonsters; //Muista joukko muodossa delete. ptrMonsters = NULL; //Asetimme se null joten sitä ei osoittaa muistia jota ei ole jaettu. return 0;} Muista: - Kun käytämme uusi, meidän on käytettävä poistaa. - Kun käytämme uusi [], meidän on käytettävä poistaa []. Vältä muistivuodot. Tilanne 1. Muistivuoto.} Tilanne 2. float * ptrNewVariable = uusi int; //Wrong.float* PtrNewVariable = uusi float; //Right.
int* PtrNewVariable = uusi int; //Meillä on uusi int variabledelete ptrNewVariable; //Me vapauttaa se.
nt main () {cout int nNumber; //Tallentaa numeron muuttujaan cin >> nNumber; //Me julistamme osoitin, joka osoittaa CMonster objekti. CMonster on hypoteettinen luokka. CMonster * ptrMonsters = uusi CMonster [nNumber]; //Pääset esineet: ptrMonsters [index] -> Fight (); //Aivan kuten normaali array. //Kun olemme päättynyt meidän vapauttaa muistia.
void Haku () {int * ptrNewVariable = uusi int [5]; //Uusi dynaaminen osuus muuttuvista. //Emme käytä poistaa [] ptrNewVariable. Oopss. //Loppu toiminto. Osoitin poistetaan ja muisti osoite menetetty.
int * ptrNewVariable = uusi int; //Osoitin pitää muuttuja address.ptrNewVariable = uusi int; //Muistivuoto täällä, osoitin pitää uuden muuttujan osoite, //mutta menetti edellinen, joten et voi vapauttaa it.delete ptrNewVariable; //Poista viimeinen jaettu muisti, mutta ei ensimmäinen.
iPhone Core Data opetusohjelma Osa 1