Aller plus loin
Les pointeurs pointent dans la RAM mais pourquoi tout le monde l'utilise ?
Car ils sont très pratiques. Je vais vous expliquer trois façons différentes pour utiliser les pointeurs.
La première est l'utilisation par "référence". Connaitre l'adresse d'une variable dans la RAM permet de pouvoir la passer à n'importe quelle fonction en paramètre et donc que la fonction puisse modifier sa valeur.
Il est vrai que vous avez pu tomber sur cette problématique. Créer une fonction qui modifie une variable n'importe où dans votre programme.
Nous allons donc créer une fonction qui prend en paramètre l'adresse d'une variable et un entier qu'on lui incrémentera.
>>>adresse de mavariable : 001DFA9C valeur de mavariable : 10 adresse de mavariable : 001DFA9C valeur de mavariable : 30
La deuxième façon d'utiliser les pointeurs est par "généricité". C'est la façon utilisée dans le cours. Avoir une seule variable qui peut se déplacer à plusieurs endroits dans la mémoire.
int* mavariable = new int[2]; mavariable[0] = 5; mavariable[1] = 10; mavariable[2] = 15; printf("%d\n", *mavariable); /*mavariable += 1; mavariable = mavariable + 1; mavariable = &(*(mavariable + 1));*/ mavariable++; printf("%d\n", *mavariable); mavariable++; printf("%d\n", *mavariable);
>>>5 10 15
La dernière façon d'utiliser les pointeurs est pour garder une valeur dans la mémoire même après être sortie de sa porté. On appelle cela l'"allocation dynamique". Cette variable ne sera jamais supprimée de la mémoire tant que vous ne le dite pas.
>>>On creer un variable : A l'addresse : 008A5D68 Avec la valeur : 25 Apres la porte de creation : A l'addresse : 008A5D68 Toujours la valeur : 25 Apres avoir supprimer manuelement la variable : A l'addresse : 008A5D68 la valeur : 9105360 (tout et n'importe quoi)