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

single

bookAllocation Dynamique de Pointeur Vers Pointeur

Glissez pour afficher le menu

Un pointeur vers pointeur, noté double pointeur (**).

Il s'agit d'un pointeur qui contient l'adresse mémoire d'un autre pointeur. En termes simples, c'est une variable dont la valeur est l'adresse d'un autre pointeur. Ce concept peut sembler complexe au premier abord, mais il offre un mécanisme puissant pour gérer l'allocation dynamique de mémoire avancée.

Syntaxe

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Address stored in ptr2 (address of ptr1): " << ptr2 << std::endl; std::cout << "Address stored in ptr1 (address of x): " << *ptr2 << std::endl; std::cout << "Value of x: " << **ptr2 << std::endl; }
  • ptr1 : est un pointeur vers un entier (int*) ;
  • ptr2 : est un double pointeur vers un entier (int**).

Allocation dynamique d'un tableau à deux dimensions

Pour créer un tableau à deux dimensions dynamiquement (à l'exécution), il est nécessaire d'utiliser un pointeur vers un pointeur pour les lignes.

Ensuite, chaque ligne doit être initialisée avec un tableau dynamique (comme dans le chapitre précédent)

Tâche

Swipe to start coding

Imaginez que vous travaillez avec une application de tableur où vous devez créer dynamiquement un tableau de nombres.

Dans cette tâche, vous allez manipuler des tableaux dynamiques à deux dimensions et vous exercer à l’allocation ainsi qu’à la désallocation de la mémoire.

  1. À l’intérieur de la fonction createAndPrint2DArray, allouez dynamiquement un tableau 2D d’entiers avec le nombre de lignes et de colonnes donné.
  2. Remplissez le tableau avec des valeurs calculées comme row * columns + column, de sorte que chaque élément soit unique et dépende de sa position.
  3. Affichez le tableau à la console sous forme tabulaire.
  4. Libérez correctement toute la mémoire allouée dynamiquement en utilisant delete[] pour chaque ligne, puis pour le tableau de pointeurs lui-même.

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 4
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