Aller au contenu

Chapitre 11 : Les Pointeurs

Découvrez l'un des concepts les plus puissants et les plus redoutés du langage C : la manipulation directe des adresses mémoire.

Concepts abordés

  • Adresse vs Valeur : Comprendre qu'une variable possède une valeur et un emplacement en mémoire.
  • L'opérateur de référencement & : Obtenir l'adresse mémoire d'une variable.
  • L'opérateur de déréférencement * : Accéder à la valeur stockée à une adresse précise.
  • Passage par pointeur : Permettre à une fonction de modifier les variables d'une autre fonction.
  • Arithmétique de pointeurs : Se déplacer en mémoire, particulièrement utile pour parcourir des tableaux de manière efficace.
  • Pointeur NULL : Sécuriser son code en identifiant les pointeurs qui ne pointent vers rien.

Explications du code

pointeurs.c

Ce fichier propose une progression pédagogique : manipulation de variables simples via des pointeurs, démonstration du lien étroit entre tableaux et pointeurs, et introduction à l'arithmétique de pointeurs.

Conseils et astuces

  • Initialisation : Un pointeur non initialisé pointe vers une adresse aléatoire. Déréférencer un tel pointeur causera un "Segmentation Fault". Initialisez toujours vos pointeurs à NULL ou à une adresse valide.
  • La règle d'or : Avant de déréférencer (utiliser *p), vérifiez toujours si le pointeur n'est pas NULL avec un if (p != NULL).
  • Taille des pointeurs : Sur un système 64 bits, tous les pointeurs font 8 octets, quel que soit le type de donnée vers lequel ils pointent (char*, int*, etc.).