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

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

En programmation, il est nécessaire de stocker des données informatiques. Ces données sont stockées en mémoire. Les emplacements mémoire pour stocker des 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. Ils sont l'allocation de mémoire statique et l'allocation de mémoire dynamique. Dans l'allocation de mémoire statique, une fois allouée, la mémoire ne peut plus être modifiée. La mémoire n'est pas réutilisable. Mais dans l'allocation de mémoire dynamique, une fois allouée, la mémoire 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 que la mémoire est allouée, la taille de la mémoire est fixe alors que dans l'allocation de mémoire dynamique, une fois que la mémoire est allouée, la taille de la mémoire peut être modifiée.

CONTENU

1. Vue d'ensemble 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. Similarités entre l'allocation de mémoire statique et dynamique
5. Comparaison côte à côte - Allocation de mémoire statique et 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 plus être changée. La mémoire ne peut pas être augmentée ou diminuée. Par exemple, en 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 aussi y avoir des tableaux. Par exemple. int x [5]; Ce x est un tableau pouvant stocker une séquence de données du même type. Il peut stocker cinq éléments entiers. Il ne peut pas stocker plus de cinq éléments. En Java, un tableau peut être créé sous la forme suivante: 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'allocation de mémoire

Dans l'allocation de mémoire statique, une fois que les variables sont allouées, elles restent permanentes. Après l’affectation initiale, le programmeur ne peut pas redimensionner la mémoire. Si le programmeur a alloué un tableau pouvant stocker 10 éléments, il n'est pas possible de stocker des valeurs supérieures à la quantité spécifiée. Si le programmeur a initialement alloué un tableau pouvant contenir 10 éléments, mais n'en avait besoin que de 5, il y a un gaspillage de mémoire. Cette mémoire n'est plus nécessaire, mais il n'est également pas possible de la réutiliser. L'allocation de mémoire statique est fixe mais l'implémentation est simple et facile, et rapide.

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

Parfois, il est nécessaire de changer la taille de la mémoire. Ainsi, la mémoire peut être allouée dynamiquement. En fonction des insertions et des suppressions d'éléments de données, la mémoire peut augmenter ou diminuer. C'est ce qu'on appelle l'allocation de mémoire dynamique.

Dans le fichier d’en-tête stdlib.h en langage C, il existe quatre fonctions pour l’allocation dynamique de mémoire. Ils sont calloc, malloc, realloc et free. La fonction malloc () alloue une taille d'octets requise et retourne un pointeur vide, en pointant le premier octet de la mémoire allouée. La fonction calloc () alloue une taille d'octets requise et les initialise à zéro. Retourne ensuite un pointeur vide dans la mémoire. La fonction free () est utilisée pour réaffecter la mémoire allouée. Et la fonction realloc peut modifier la mémoire allouée précédemment. Après avoir alloué de la mémoire en utilisant calloc ou malloc, la taille de la mémoire est fixe, mais vous pouvez l'augmenter ou la diminuer en utilisant la fonction realloc. En Java, les collections peuvent être utilisées pour l'allocation dynamique de mémoire.

Le principal avantage de l'allocation dynamique de mémoire est qu'elle permet d'économiser de la mémoire. Le programmeur peut allouer de la mémoire ou libérer de la mémoire si nécessaire. La mémoire peut être réaffectée lors de l'exécution et peut libérer de la mémoire lorsque cela n'est pas nécessaire. 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 manuellement par le programmeur.

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

Allocation de mémoire statique ou dynamique

L'allocation de mémoire statique est une méthode d'allocation de mémoire. Une fois la mémoire allouée, elle est fixée.. L'allocation dynamique de mémoire est une méthode d'allocation de mémoire. Une fois allouée, la mémoire 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 réduite ou agrandie en conséquence.
la mise en oeuvre
L'allocation de mémoire statique est facile à mettre en œuvre. L'allocation de mémoire dynamique est complexe à mettre en œuvre.
 La vitesse
En mémoire statique, l'exécution de l'allocation est plus rapide que l'allocation de mémoire dynamique. En mémoire dynamique, l'exécution de l'allocation est plus lente que l'allocation de mémoire statique.
Utilisation de la mémoire
En allocation de mémoire statique, impossible de réutiliser la mémoire inutilisée. L'allocation dynamique de mémoire permet de réutiliser la mémoire. Le programmeur peut allouer plus de mémoire si nécessaire. Il peut libérer la mémoire si nécessaire.

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

En programmation, l’allocation de mémoire statique et l’allocation de mémoire dynamique sont deux mécanismes d’allocation de mémoire. La différence entre l'allocation de mémoire statique et dynamique réside dans le fait que, dans l'allocation de mémoire statique, une fois la mémoire allouée, la taille de la mémoire est fixe. 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, conformément à 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 allocation de mémoire statique et allocation de mémoire dynamique, 1er janvier 1970. Disponible ici 
2.tutorialspoint.com. «Tableaux en C.» Le point. Disponible ici 
3.nareshtechnologies. Mémoire statique vs mémoire dynamique | Tutoriel en langage C, Naresh i Technologies, 19 septembre 2016. Disponible ici