Gestion dynamique de la mémoire : new / delete

Slides:



Advertisements
Présentations similaires
Programmation Orienté Objet en C++
Advertisements

1 Tableaux des objets C++ si on connaît le nombre dobjets nécessaires davance on peut utiliser des tableau dobjets dans les fonctions dusage class Personne.
Programmation Orientée Objet (POO)
Virtools Olivier Lamotte.
Les attributions de valeur (le signe =). Dans cette présentation, nous allons tenter de représenter ce qui se passe dans la mémoire de lordinateur quand.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Chapitre VIII Structures dobjets. Chapitre VIII - Structures d'objets2 Structures d objets Il existe plusieurs relations entre les classes. Lhéritage.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Les pointeurs en C. valeur : main () { float valeur; void* pointeur; }
Les Types de données complexes
Cours 7 Divers et exceptions. Chapitre V Enumeration, tableaux, conversion de types, noms.
Le langage C Rappel Pointeurs & Allocation de mémoire.
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
Strings et Tableaux en Java
Les types composés Les enregistrements.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
Informatique 2A Langage C 3 ème séance.
Cours de Langage C Les structures
LES SYSTÈMES DYNAMIQUES.
Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
Gestion par le super administrateur. Page d’accueil.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
CINI – Li115 1 Semaine 11 Les pointeurs (suite) ● Tableaux et pointeurs ● Questions sur les pointeurs.
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers.
8INF259 STRUCTURE DE DONNEES LISTE, PILES, FILES LANDRY D. CHAPWOUO T., UQAC/DIM mardi 4 octobre 2016LANDRY CHAPWOUO.
Séances de soutien Projet informatique 2A
Tableaux en C Mardi 2/05.
Semaine 8 Retour sur les tableaux : fonctions et récursivité
JAVA.
Les tableaux différencier les variables simples des variables indicées (ordonnées et numérotées) un identificateur unique désigne un ensemble, une collection.
Environnement de développement des BD
LES TABLEAUX EN JAVA.
Pas de variable globale
Les notions de classe et d'objet
Algorithmiques Abdelbasset KABOU
Eléments d’Informatique Cours11 – Allocation dynamique, listes chaînées Catherine Recanati.
Allocation dynamique de mémoire
Pointeurs et langage C.
Détection des erreurs.
11ième Classe (Mardi, 18 novembre) CSI2572
Langages de programmation TP7
Semaine 11 Les pointeurs (suite)
Matrices, déclaration en CSharp
Les Tableaux en JAVA.
Bases de programmation en Python
Principes de programmation (suite)
Tableaux à plusieurs dimensions en langage C
Algorithmique & Langage C
5ième Classe (Mardi, 6 octobre) CSI2572
Semaine #4 INF130 par Frédérick Henri.
Programmation en C++ C++ de base
M1103 : Structures de données et algorithmes fondamentaux
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Créer un plan de placement
Int 10. Int 6.
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Principes de programmation (suite)
Question 1 Pour afficher un tableau d’entiers tab en C :
Quelle est la valeur de S après exécution des instructions suivantes :
QCM Pointeurs 2 / Q1 On considère la déclaration suivante : char *ptc ; ptc peut contenir : 1) des valeurs de variables de type caractère 2) des adresses.
Le langage C# : Partie 1.
INTERFACE ET POLYMORPHISME
Présentation Chaînage dynamique Retour sur les tableaux
renvoie la moyenne d’un tableau d’entiers
STREAMS (et fichiers).
Python Nicolas THIBAULT
Transcription de la présentation:

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).

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