NEW |
Nouveau |
|---|---|
| Pascal | |
Syntaxe
| Procedure New(Var p:pointer-type); |
Paramètres
| Nom | Description |
|---|---|
| p | Ce paramètre permet de retourner un pointeur |
Description
Cette fonction permet d'allouer de la mémoire dynamique pour une variable.
Algorithme
|
MODULE NEW(Ref Pointeur) Allouer de la mémoire pour le type de données pointé par Pointeur SI l'allocation est réussie ALORS Initialiser la zone de mémoire allouée à des valeurs par défaut (par exemple, 0 ou NIL) Définir Pointeur pour qu'il pointe vers cette zone de mémoire SINON * Définir Pointeur à NIL (aucune allocation n'a été faite) Pointeur ← NIL FIN SI |
Remarques
- Cette procédure n'a pas été défini dans le Pascal d'origine et la convention d'appel de cette procédure dépend donc essentiellement des marques de Pascal que vous utilisez.
- La procédure NEW est utilisée pour allouer de la mémoire dynamique pour une variable de type pointeur. Elle permet de créer un espace mémoire pour une variable sans avoir à spécifier une taille fixe à la compilation. Cela permet une gestion de mémoire plus flexible lors de l'exécution du programme.
- Le paramètre p est un pointeur qui reçoit l'adresse mémoire du nouvel espace alloué. Avant l'appel à NEW, p doit être un pointeur non initialisé. La procédure affecte à ce pointeur l'adresse de la mémoire récemment allouée.
- NEW est couramment utilisée pour gérer des structures de données dynamiques comme les listes chaînées ou les arbres. Elle permet d'allouer de la mémoire à la volée, évitant ainsi l'utilisation d'un tableau à taille fixe. Cela rend le programme plus modulable et plus efficace pour des structures dont la taille peut varier.
- Une fois la mémoire allouée avec NEW, elle doit être libérée par la procédure DISPOSE pour éviter les fuites de mémoire. La gestion manuelle de la mémoire est cruciale pour garantir des performances optimales. Ne pas libérer la mémoire après son utilisation peut entraîner une surconsommation des ressources système.
- La procédure NEW ne vérifie pas si la mémoire a bien été allouée, et si l'allocation échoue, elle peut conduire à des erreurs ou des comportements inattendus. Il est donc recommandé d'utiliser NEW avec précaution et de toujours vérifier si le pointeur est valide après son allocation. Dans certains cas, une gestion d'erreur pourrait être ajoutée pour détecter ces situations.
- L'allocation dynamique de mémoire avec NEW permet de créer des structures de données dont la taille n'est pas connue à l'avance. Cela est particulièrement utile dans les algorithmes devant traiter des ensembles de données de taille variable. Cela contraste avec les allocations statiques, qui nécessitent de connaître la taille de la mémoire avant l'exécution.
- En utilisant NEW, on permet à un programme de gérer des objets ou des structures de données de manière plus flexible et modulaire. Les variables allouées dynamiquement peuvent être redimensionnées ou supprimées au besoin, ce qui est impossible avec des variables statiques. Cela est essentiel dans des applications comme les bases de données ou la gestion de grandes quantités d'informations.
- Lorsque la mémoire allouée par NEW n'est plus nécessaire, il est important de libérer cette mémoire pour éviter les fuites. Cela est accompli avec la procédure DISPOSE, libérant l'espace mémoire et évite de gaspiller des ressources. La gestion efficace de la mémoire dynamique est essentielle pour garantir la stabilité et la performance des programmes.
Dernière mise à jour : Mercredi, le 10 avril 2019