La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Gestion dynamique de la mémoire : new / delete

Présentations similaires


Présentation au sujet: "Gestion dynamique de la mémoire : new / delete"— Transcription de la présentation:

1 Gestion dynamique de la mémoire : new / delete
L’instanciation statique des variables est soumise à la règle de portée de nom. L’allocation dynamique permet de s’affranchir de ces règles. C’est alors au programmeur de gérer la mémoire via - l’utilisation des pointeurs - les opérateurs new et delete L’opérateur new permet d’instancier un objet : il réserve la place mémoire pour le stocker, engendre l’appel du constructeur et retourne l’adresse mémoire de la zone réservée L’opérateur delete engendre l’appel du destructeur puis libère la place mémoire Les opérateurs new et delete s’appliquent aussi bien aux types simples qu’aux types complexes (classes).

2 Gestion dynamique de la mémoire : exemple
Allocation dynamique Déclaration statique int *p0; p0 = new int; *p0 = 421; // p0 pointe sur un entier initialisé a 421 delete p0; Type simple int n = 421; float *tab; tab = new float[5]; // Réserve un tableau de 5 réels for (int i = 0; i < 5; i++) tab[i] = 1.4 * i; delete[] tab; float tab[5]; for (int i = 0; i < 5; i++) tab[i] = 1.4 * i; Tableau // Appel du constructeur par défaut : Cercle *p0 = new Cercle ; // S’il existe un constructeur avec les arguments correspondants : Cercle *p1 = new Cercle(arg1, arg2, arg3); // Tableau de n objets de type Cercle Cercle *p2 = new Cercle [n]; p1->deplace(10, 20); delete p0; delete p1; delete[] p2; Cercle c0; Cercle c1(arg1, arg2, arg3) Cercle c2[10]; c1.deplace(10, 20); Type complexe


Télécharger ppt "Gestion dynamique de la mémoire : new / delete"

Présentations similaires


Annonces Google