Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Allocation Dynamique | Allocation Dynamique de Mémoire
Pointeurs et Références en C++
Section 4. Chapitre 2
single

single

bookAllocation Dynamique

Glissez pour afficher le menu

L'allocation dynamique de mémoire implique l'utilisation des opérateurs new et delete. Ces opérateurs permettent d'allouer de la mémoire pour des variables et des tableaux à l'exécution, offrant ainsi une plus grande flexibilité que l'allocation statique de mémoire.

  • new : opérateur utilisé pour allouer dynamiquement de la mémoire pour un objet ou un tableau d'objets pendant l'exécution ;

  • delete : opérateur utilisé pour désallouer la mémoire précédemment allouée avec l'opérateur new.

Note
Remarque

Un pointeur pointant vers une mémoire allouée dynamiquement est généralement stocké sur la pile, mais la mémoire à laquelle il fait référence est allouée sur le tas.

Pour créer dynamiquement une variable entière, il faut utiliser un pointeur avec le mot-clé new.

int *dynamicInteger = new int;

Pour libérer la mémoire allouée dynamiquement, utiliser l'opérateur delete :

delete dynamicInteger;

Adopter la règle suivante : lors de l'utilisation de new pour allouer de la mémoire, toujours utiliser delete pour la libérer par la suite.

Tableaux alloués dynamiquement

Pour allouer dynamiquement de la mémoire pour des tableaux, utiliser l'opérateur new[], et pour libérer la mémoire de ces tableaux, utiliser l'opérateur delete[].

Note
Remarque

L'oubli de supprimer la mémoire allouée dynamiquement peut entraîner des fuites de mémoire, où le programme conserve de la mémoire qui n'est plus utilisée.

Tâche

Glissez pour commencer à coder

Imaginez que vous travaillez en tant qu'enseignant et que vous devez calculer la moyenne des notes d'un groupe d'élèves.

Vous allez également utiliser des pointeurs et des fonctions qui manipulent des tableaux alloués dynamiquement.

  1. Créez un tableau alloué dynamiquement grades pour stocker les notes des élèves.
  2. Utilisez la fonction fillRandomGrades pour remplir le tableau avec des notes aléatoires comprises entre 60 et 100.
  3. Complétez la fonction calculateAverage afin qu'elle :
    • Initialise la variable sum à 0.
    • Parcourt le tableau à l'aide d'une boucle for.
    • Ajoute chaque note à sum.
    • Retourne la moyenne des notes en divisant le total sum par le nombre d'élèves.
  4. N'oubliez pas de libérer la mémoire allouée en utilisant delete[] à la fin du programme pour éviter les fuites de mémoire.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt