Différence entre l'allocation de mémoire statique et dynamique

Différence entre l'allocation de mémoire statique et dynamique

Différence clé - allocation de mémoire statique vs dynamique
 

En programmation, il est nécessaire de stocker des données de calcul. Ces données sont stockées en mémoire. Les emplacements de mémoire pour stocker les données dans la programmation informatique sont appelés variables. Les variables ont un type de données spécifique. Par conséquent, la mémoire est allouée pour exécuter les programmes. La mémoire peut être allouée de deux manières. Ce sont une allocation de mémoire statique et une allocation de mémoire dynamique. Dans une allocation de mémoire statique, une fois la mémoire allouée, elle ne peut pas être modifiée. La mémoire n'est pas réutilisable. Mais dans l'allocation de mémoire dynamique, une fois la mémoire allouée, elle peut être modifiée. Le différence clé entre l'allocation de mémoire statique et dynamique est que Dans l'allocation de mémoire statique une fois la mémoire allouée, la taille de la mémoire est fixée dans l'allocation de mémoire dynamique, une fois la mémoire allouée, la taille de la mémoire peut être modifiée.

CONTENU

1. Aperçu et différence clé
2. Qu'est-ce que l'allocation de mémoire statique
3. Qu'est-ce que l'allocation de mémoire dynamique
4. Similitudes entre l'allocation de mémoire statique et dynamique
5. Comparaison côte à côte - allocation de mémoire statique vs dynamique sous forme tabulaire
6. Résumé

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

Dans l'allocation de mémoire statique, la mémoire allouée est fixe. Une fois la mémoire allouée, elle ne peut pas être modifiée. La mémoire ne peut pas être augmentée ou diminuée. Par exemple, dans le langage C si le programmeur écrit INT X, ce qui signifie que la variable peut stocker une valeur entière. Le nombre d'octets dépend de l'ordinateur. Il peut également y avoir des tableaux. E.g. int x [5]; Ce X est un tableau qui peut stocker une séquence de données qui sont du même type. Il peut stocker cinq éléments entiers. Il ne peut pas stocker plus de cinq éléments. Dans Java, un tableau peut être créé comme, int arr [] = new int [5]; Le tableau «arr» peut stocker 5 valeurs entières et ne peut pas stocker plus que cela.

Figure 01: Méthodes d'attribution de la mémoire

Dans une allocation de mémoire statique, une fois les variables allouées, elles restent permanentes. Après l'allocation initiale, le programmeur ne peut pas redimensionner la mémoire. Si le programmeur a alloué un tableau qui peut stocker 10 éléments, il n'est pas possible de stocker les valeurs plus que ce montant spécifié. Si le programmeur allouait initialement un tableau qui peut contenir 10 éléments, mais n'avait besoin que de 5 éléments, alors il y a un gaspillage de mémoire. Cette mémoire n'est plus nécessaire, mais il n'est pas non plus possible de réutiliser la mémoire. L'allocation de mémoire statique est fixe mais l'implémentation est simple et facile, et elle est également rapide.

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

Parfois, il est nécessaire de modifier la taille de la mémoire. Ainsi, la mémoire peut être allouée dynamiquement. Selon les insertions et les suppressions des éléments de données, la mémoire peut croître ou rétrécir. Il est connu comme une allocation de mémoire dynamique.

En langue C, stdlib.Fichier d'en-tête H, il existe quatre fonctions pour l'allocation de mémoire dynamique. Ils sont calloc, malloc, realloc et gratuit. La fonction malloc () alloue une taille requise des octets et renvoie un pointeur vide, pointant le premier octet de la mémoire allouée. La fonction calloc () alloue une taille requise des octets et les initialiser à zéro. Puis renvoie un pointeur vide sur la mémoire. La fonction libre () est utilisée pour réaffecter la mémoire allouée.  Et la fonction realloc peut modifier la mémoire précédemment allouée. Après avoir alloué la mémoire à l'aide de calloc ou malloc, la taille de la mémoire est fixe, mais elles peuvent être augmentées ou diminuées à l'aide de la fonction realloc. En Java, les collections peuvent être utilisées pour une allocation de mémoire dynamique.

Le principal avantage de l'allocation de mémoire dynamique est qu'il enregistre la mémoire. Le programmeur peut allouer la mémoire ou libérer la mémoire si nécessaire. La mémoire peut être réaffectée pendant l'exécution et peut libérer la mémoire lorsqu'elle n'est pas requise. L'allocation de mémoire dynamique est également efficace que l'allocation de mémoire statique. Un inconvénient est que la mise en œuvre de l'allocation de mémoire dynamique est complexe.

Quelles sont les similitudes entre l'allocation de mémoire statique et dynamique?

  • Les deux sont des mécanismes d'allocation de mémoire.
  • Les deux doivent être implémentés par le programmeur manuellement.

Quelle est la différence entre l'allocation de mémoire statique et dynamique?

Allocation de mémoire statique vs dynamique

L'allocation de mémoire statique est une méthode d'allocation de la mémoire, et une fois la mémoire allouée, elle est fixe. L'allocation de mémoire dynamique est une méthode d'allocation de la mémoire, et une fois la mémoire allouée, elle peut être modifiée.
 Modification
Dans l'allocation de mémoire statique, il n'est pas possible de redimensionner après l'allocation initiale. Dans l'allocation de mémoire dynamique, la mémoire peut être minimisée ou maximiser en conséquence.
Mise en œuvre
L'allocation de mémoire statique est facile à mettre en œuvre. L'allocation de mémoire dynamique est complexe à implémenter.
 Vitesse
En mémoire statique, l'exécution d'allocation est plus rapide que l'allocation de mémoire dynamique. Dans la mémoire dynamique, l'exécution d'allocation est plus lente que l'allocation de mémoire statique.
Utilisation de la mémoire
Dans une allocation de mémoire statique, ne peut pas réutiliser la mémoire inutilisée. L'allocation de mémoire dynamique permet de réutiliser la mémoire. Le programmeur peut allouer plus de mémoire en cas de besoin . Il peut libérer la mémoire si nécessaire.

Résumé - Allocation de mémoire statique vs dynamique

En programmation, une allocation de mémoire statique et une allocation de mémoire dynamique sont deux mécanismes pour allouer la mémoire. La différence entre l'allocation de mémoire statique et dynamique est que dans l'allocation de mémoire statique une fois la mémoire allouée, la taille de la mémoire est fixée dans l'allocation de mémoire dynamique, une fois la mémoire allouée, la taille de la mémoire peut être modifiée. Le programmeur peut décider si la mémoire doit être statique ou dynamique en fonction de l'application.

Téléchargez le PDF de l'allocation de mémoire statique vs dynamique

Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne selon la note de citation. Veuillez télécharger la version PDF ici: différence entre l'allocation de mémoire statique et dynamique

Référence:

1.Kayal, Somnath. «Somnath Kayal.”Différence entre l'allocation de mémoire statique et l'allocation de mémoire dynamique, 1 janvier. 1970. Disponible ici 
2.tutorielpoint.com. «Arris en C." Le point. Disponible ici 
3.nareshtechnologies. Mémoire statique vs mémoire dynamique | C Tutorial de langue, Naresh I Technologies, 19 septembre. 2016. Disponible ici