En général, lorsque vous codez, vous devez spécifier la quantité de variables qui seront dans votre programme, mais, après la compilation, vous ne pouvez pas modifier la quantité d'entre eux. La mémoire dynamique nous permet d'allouer de la mémoire (dans le tas) et le libérer alors que notre programme est en cours.
Pour cela, nous allons utiliser le nouvelle et Supprimer les opérateurs et certains em> Rappelez-vous toujours de libérer la mémoire allouée, sinon il y aura une fuite de mémoire. Les types doivent être les mêmes Exemple:. Nous faisons un jeu, donc nous demandons au lecteur combien de monstres qu'il aurait envie de se battre avec CMonster * ptrMonsters = new CMonster [nNombre]; //Pour accéder aux objets: ptrMonsters [index] -> Lutte (); //Tout comme un tableau normal. //Quand nous avons terminé, nous libérons la mémoire. supprimer [] ptrMonsters; //Rappelez-vous la forme matricielle de suppression. ptrMonsters = NULL; //Nous mettre à NULL afin de ne pas pointer vers la mémoire qui est pas attribué. return 0;} Rappelez-vous: - Lorsque nous utilisons nouvelle, nous devons utiliser supprimer - Lorsque nous utilisons nous devons utiliser Supprimer []. éviter les fuites de mémoire. Situation 1. Situation 2. ptrNewVariable variable = new int; //Fuite de mémoire ici, le pointeur contient l'adresse de la variable nouvelle, //mais a perdu la précédente, de sorte que vous ne sera pas en mesure de libérer ptrNewVariable it.delete; //Supprimer le dernier mémoire allouée, mais pas le premier. flotter * ptrNewVariable = new int. //Wrong.float* PtrNewVariable = new float; //Right.
int* PtrNewVariable = new int; //Nous avons un nouveau int variabledelete ptrNewVariable; //Nous libérer
NT main () {cout. int nNombre; //Enregistrer le numéro dans une cin >> nNombre variables; //Nous déclarons un pointeur qui pointe vers un objet CMonster. CMonster est une classe hypothétique.
vide Recherche () {int * ptrNewVariable = new int [5]; //Nouvelle variable allouée dynamique. //Nous ne utilisons supprimer [] ptrNewVariable. Oopss. //Fin de la fonction. Le pointeur est supprimé et l'adresse de la mémoire est perdu. Fuite de mémoire}
int * ptrNewVariable = new int. //Le pointeur contient l'address.
iPhone de base de données Tutorial Part 1