Generelt, når du er kodning, du nødt til at angive størrelsen af variabler, der vil være i dit program, men efter kompilering, kan du ikke ændre mængden af dem. Den dynamiske hukommelse giver os mulighed for at allokere hukommelse (fra den bunke) og gratis den, mens vores program kører.
Til det, vi kommer til at bruge ny og slet operatører og nogle pointere. Husk altid at frigøre hukommelse allokeret, ellers vil der være en hukommelsesfejl. Typerne skal være den samme float* PtrNewVariable = nye float; //Right. Eksempel:. Vi gør et spil, så vi beder spilleren, hvor mange monstre, han ønsker at kæmpe med //Når vi er færdige, vi frigøre hukommelse. slet [] ptrMonsters; //Husk array form af sletning. ptrMonsters = NULL; //Vi sætter det til null så det vil ikke pege på hukommelsen, der ikke er fordelt. returnere 0;} Husk: - Når vi bruger ny, vi skal bruge slet - Når vi bruger vi skal bruge Situation slette []. Undgå memory leaks. 1. Markøren er slettet og hukommelsen adressen er tabt. Hukommelsesfejl} Situation 2. flyde * ptrNewVariable = ny int.; //Wrong.
int* PtrNewVariable = nye int; //Vi har en ny int variabledelete ptrNewVariable; //Vi frigøre det
nt main () {cout. int nNumber; //Gemme nummeret i en variabel cin >> nNumber; //Vi erklærer en pointer, der vil pege på en CMonster objekt. CMonster er en hypotetisk klasse. CMonster * ptrMonsters = ny CMonster [nNumber]; //For at få adgang til objekter: ptrMonsters [index] -> Fight (); //Ligesom en normal array.
ugyldig Søg () {int * ptrNewVariable = ny int [5]; //Ny dynamisk tildelte variabel. //Vi brugte ikke slette [] ptrNewVariable. Oopss. //Slut på funktion.
int * ptrNewVariable = new int.; //Markøren holder den variable address.ptrNewVariable = nye int; //Hukommelsesfejl her, markøren holder den nye variabel adresse, //men tabte den foregående, så du vil ikke være i stand til at frigøre it.delete ptrNewVariable; //Slet den sidste tildelte hukommelse, men ikke den første.
iPhone Core Data Tutorial Del 1