Retour au cours

Pointeurs Partie 4 : Pointeurs et Fonctions

Langage C : de Zéro à Héros - Le Guide Complet pour Débutants

Leçon 37 : Pointeurs Partie 4 : Pointeurs et Fonctions

L'utilisation de pointeurs dans les fonctions nous permet de réaliser un Passage par référence et de transmettre efficacement des structures de données complexes.

1. Réaliser un passage par référence (La fonction Swap)

Pour permettre à une fonction de modifier des variables déclarées en dehors de sa portée, nous passons les adresses de ces variables.

c #include <stdio.h>

void permuter(int *x, int *y) { int temp = *x; // Stocke la valeur pointée par x *x = *y; // Change la valeur à l'adresse x par celle de l'adresse y *y = temp; // Change la valeur à l'adresse y par la valeur originale de x }

int main() { int a = 5, b = 10; printf("Avant permutation : a=%d, b=%d\n", a, b);

// Passage des adresses
permuter(&a, &b);

printf("Après permutation : a=%d, b=%d\n", a, b); 
return 0;

}

2. Renvoyer des pointeurs depuis des fonctions

Les fonctions peuvent renvoyer un pointeur (une adresse).

Attention : Ne renvoyez jamais l'adresse d'une variable locale (automatique), car cette mémoire est libérée à la sortie de la fonction, ce qui crée un pointeur suspendu (dangling pointer).

Si vous devez renvoyer un pointeur, il doit pointer vers :

  1. Une variable globale.
  2. Une variable locale statique.
  3. De la mémoire allouée dynamiquement (abordé ensuite).
  4. De la mémoire passée à la fonction en tant qu'argument.