single
Allocation 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
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)
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.
- À l’intérieur de la fonction
createAndPrint2DArray, allouez dynamiquement un tableau 2D d’entiers avec le nombre de lignes et de colonnes donné. - 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. - Affichez le tableau à la console sous forme tabulaire.
- 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
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion