In het algemeen, wanneer u het coderen, moet u het bedrag van de variabelen die zullen worden in uw programma te specificeren, maar na het compileren, kun je niet de hoeveelheid te veranderen. Het dynamisch geheugen laat ons toe om het geheugen (van de hoop) en gratis is, terwijl onze programma loopt te wijzen.
Voor dat, we gaan de nieuwe gebruiken en verwijderen exploitanten en sommige pointers. Altijd onthouden om het geheugen toegewezen vrij, anders zal er een geheugenlek zijn. De types moet hetzelfde zijn Voorbeeld:. Wij zijn bezig met een spel, dus we vragen de speler hoeveel monsters hij zou willen vechten met CMonster * ptrMonsters = new CMonster [nNumber]; //Om de objecten: ptrMonsters [index] -> Fight (); //Net als een normale array. //Als we klaar bevrijden we het geheugen. verwijderen [] ptrMonsters; //Vergeet niet de array vorm van verwijderen. ptrMonsters = NULL; //We stellen het zo null het zal niet wijzen op het geheugen dat niet is toegewezen. 0 keren;} Let op: - Wanneer we nieuwe, we moeten gebruiken verwijderen - Wanneer we we moeten gebruiken . verwijderen [] Vermijd geheugenlekken. Situatie 1. Situatie 2. delete ptrNewVariable; //Verwijder de laatste toegewezen geheugen, maar niet de eerste. float * ptrNewVariable = new int.; //Wrong.float* PtrNewVariable = new float; //Right.
int* PtrNewVariable = new int; //We hebben een nieuwe int variabledelete ptrNewVariable; //We bevrijden
nt main () {cout. int nNumber; //Sla het nummer in een variabele cin >> nNumber; //Wij verklaren een pointer die wijzen op een CMonster object. CMonster is een hypothetisch klasse.
leegte Search () {int * ptrNewVariable = new int [5]; //Nieuwe dynamisch toegekende variabele. //We hebben geen gebruik te verwijderen [] ptrNewVariable. Oopss. //Einde van de functie. De wijzer wordt verwijderd en het geheugen adres is verloren. Geheugenlek}
int * ptrNewVariable = new int.; //De aanwijzer houdt de variabele address.ptrNewVariable = new int; //Geheugenlek hier, de wijzer houdt de nieuwe variabele adres, //maar verloor de vorige, zodat u niet in staat zijn om te bevrijden it.
iPhone Core Data Tutorial Part 1