Contenu du cours
C++ Pointeurs et Références
C++ Pointeurs et Références
Allocation Dynamique de Pointeur à Pointeur
Un pointeur vers pointeur, noté double pointeur (**
).
C'est un pointeur qui contient l'adresse mémoire d'un autre pointeur. En d'autres termes, c'est une variable dont la valeur est l'adresse d'un autre pointeur. Ce concept peut sembler complexe au début, mais il offre un mécanisme puissant pour gérer l'allocation dynamique de mémoire avancée.
Syntaxe
main
#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Location of ptr2: " << ptr2 << std::endl; std::cout << "Location of ptr1: " << *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
Si vous souhaitez créer dynamiquement (à l'exécution) un tableau à deux dimensions, vous devez utiliser un pointeur vers un pointeur pour les lignes.
Ensuite, initialisez chaque ligne avec un tableau dynamique (comme dans le chapitre précédent)
Swipe to start coding
- Allouer dynamiquement un tableau à deux dimensions.
- Allouer dynamiquement les tableaux en tant qu'éléments.
- Libérer toute la mémoire allouée.
Solution
solution
Merci pour vos commentaires !
Allocation Dynamique de Pointeur à Pointeur
Un pointeur vers pointeur, noté double pointeur (**
).
C'est un pointeur qui contient l'adresse mémoire d'un autre pointeur. En d'autres termes, c'est une variable dont la valeur est l'adresse d'un autre pointeur. Ce concept peut sembler complexe au début, mais il offre un mécanisme puissant pour gérer l'allocation dynamique de mémoire avancée.
Syntaxe
main
#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Location of ptr2: " << ptr2 << std::endl; std::cout << "Location of ptr1: " << *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
Si vous souhaitez créer dynamiquement (à l'exécution) un tableau à deux dimensions, vous devez utiliser un pointeur vers un pointeur pour les lignes.
Ensuite, initialisez chaque ligne avec un tableau dynamique (comme dans le chapitre précédent)
Swipe to start coding
- Allouer dynamiquement un tableau à deux dimensions.
- Allouer dynamiquement les tableaux en tant qu'éléments.
- Libérer toute la mémoire allouée.
Solution
solution
Merci pour vos commentaires !