Skip to main content

Qu'est-ce que l'allocation de mémoire dynamique?

L'allocation de mémoire dynamique, également appelée allocation de mémoire basée sur un tas, est un type de gestion de la mémoire qui est fortement contrastée par l'allocation de mémoire statique.Dans l'allocation de mémoire dynamique, le programmeur indique à l'ordinateur la quantité de mémoire à allouer pour chaque programme et combien de temps pour conserver la mémoire.Cela résout bon nombre des problèmes qui se produisent dans l'allocation de mémoire statique, tels que la surutilisation de la mémoire et les programmes bloqués.Bien qu'il résout de nombreux problèmes, si le programmeur oublie de dire à la mémoire de vider, la mémoire dynamique peut devenir un problème.

Les ordinateurs, par défaut, utilisent une allocation de mémoire statique.Cela signifie que la mémoire conserve des programmes lorsqu'ils sont utilisés, même si le programme n'est plus utilisé ou si la mémoire tenue devient dangereuse ou un obstacle à la performance.Par exemple, si l'utilisateur cesse d'exécuter un programme qui prend 2 mégaoctets (MB) sur une machine de 3 Mo, et un deuxième programme a besoin de 2 Mo, le deuxième programme ne fonctionnera pas.En effet, il n'y a pas assez de mémoire dans l'ordinateur pour l'autre programme.

Avec une allocation de mémoire statique, l'utilisateur ou le programmeur ne peut pas spécifier la quantité de mémoire qu'il souhaite stocker, et le programmeurLa mémoire pour libérer des ressources.C'est pourquoi les utilisateurs avancés utilisent souvent une allocation de mémoire dynamique.Le programmeur est capable de tout contrôler sur la mémoire, y compris la durée de maintien des ressources.

Par exemple, le programmeprogrammes à ouvrir.Cela peut être fait car la mémoire statique conserve généralement tout sur le programme, tandis que la mémoire dynamique permet aux programmeurs de le définir à une valeur inférieure qui contient certaines données, mais pas tout.Dans le même temps, la mémoire statique sera toujours nécessaire, et elle peut être définie dans ce schéma d'allocation.

Un problème potentiel avec une allocation de mémoire dynamique mdash;celui qui entre rarement en jeu mdash;est que la mémoire dynamique peut se remplir si le programmeur oublie de définir une valeur temporelle.Si aucune valeur de temps n'est définie, contrairement à la mémoire statique qui finira par libérer la mémoire, la mémoire dynamique conservera les informations.Si le programme a une application de vidage à ordures, et la plupart le font, il s'activera après un certain temps pour effacer la mémoire.Il est toujours la meilleure pratique pour définir une valeur de temps pour l'allocation de mémoire.