Variable dynamique

Définition, exemples et bonnes pratiques

À retenir

  • Créée pendant que le programme tourne (temps d'exécution).
  • Permet une gestion flexible de la mémoire vive.
  • Doit être libérée après usage pour éviter de saturer l'ordinateur.
  • Se situe généralement dans une zone mémoire appelée le « tas » (heap).

Une variable dynamique est un espace de stockage en mémoire dont la taille ou l'existence n'est pas décidée à l'avance lors de l'écriture du code, mais au moment où le programme s'exécute. C'est un peu comme une table de restaurant que l'on réserve uniquement quand on arrive : on ne l'occupe que si on en a besoin, et on la libère une fois le repas terminé pour que d'autres puissent l'utiliser.

Étymologie

Composé de variable (du latin variabilis, qui peut changer) et de dynamique (du grec dunamis, la force ou la puissance). En informatique, le terme « dynamique » s'oppose à « statique » pour désigner tout ce qui se produit durant l'exécution du logiciel plutôt qu'au moment de sa création ou de sa compilation.

Exemples d'usage

  • En langage C, l'utilisation de la fonction malloc() pour réserver un bloc de mémoire précisément adapté à la taille d'un fichier que l'on vient d'ouvrir.
  • Dans un jeu vidéo, la création d'un nouvel ennemi à l'écran : la variable qui contient ses caractéristiques est créée dynamiquement au moment de son apparition.

Cas d'usage

On utilise les variables dynamiques lorsque la quantité de données à traiter est inconnue au départ, par exemple pour stocker une liste de contacts saisie par l'utilisateur ou pour charger des images de différentes tailles en mémoire vive. Elles sont au cœur de la gestion de structures de données complexes comme les listes chaînées ou les arbres.

Bonnes pratiques

Le principal piège est la fuite de mémoire : si vous créez une variable dynamique mais que vous oubliez de dire au système de récupérer l'espace une fois fini, la mémoire se remplit inutilement. Dans les langages comme le C ou le C++, il faut être rigoureux avec la libération (free ou delete). Dans les langages modernes (Java, Python, JS), un mécanisme appelé « ramasse-miettes » (Garbage Collector) s'en occupe automatiquement, mais il faut tout de même veiller à ne pas conserver de références inutiles vers ces objets.

Synonymes

allocation dynamique variable de tas

Antonymes

variable statique variable fixe

Conseil

Pour bien comprendre le concept, essayez de visualiser la différence entre une armoire avec des étagères fixes (statique) et un système de boîtes que l'on empile ou retire à volonté selon le volume d'objets à ranger (dynamique). Si vous débutez, apprenez d'abord à manipuler des variables classiques avant de vous lancer dans l'allocation manuelle de mémoire.

Questions fréquentes

Quelle est la différence avec une variable statique ?

Une variable statique a une place réservée dès le début et pour toute la durée du programme, alors qu'une variable dynamique naît et meurt selon les besoins précis du moment.

Est-ce que toutes les variables sont dynamiques en Python ?

La plupart des objets en Python sont gérés de manière dynamique en arrière-plan, ce qui simplifie la vie du développeur mais consomme un peu plus de ressources système.