Introduction
En programmation C, nous ne connaissons pas toujours à l'avance la taille initiale d'un tableau. Dans de tels cas, nous utilisons l'allocation dynamique de mémoire, une méthode d'allocation de mémoire uniquement lorsqu'elle est nécessaire. malloc() est une fonction utilisée en programmation C pour allouer une quantité spécifique de mémoire nécessaire pour un tableau ou une variable qui sera utilisée pendant l'exécution. Dans ce laboratoire, nous allons apprendre à allouer dynamiquement de la mémoire en utilisant malloc() puis à libérer l'espace mémoire en utilisant free().
Note: Vous devez créer le fichier
~/project/main.cvous-même pour pratiquer la programmation et apprendre à le compiler et à l'exécuter en utilisant gcc.
cd ~/project
## créer main.c
touch main.c
## compiler main.c
gcc main.c -o main
## exécuter main
./main
Inclure les fichiers d'en-tête nécessaires
Dans cette étape, nous allons inclure les fichiers d'en-tête nécessaires dans notre programme.
#include <stdio.h>
#include <stdlib.h>
Définir la fonction main()
Dans cette étape, nous allons définir la fonction main(). Dans cette fonction, nous allons déclarer les variables nécessaires au programme.
int main()
{
int n, i, *ptr, sum = 0;
printf("\nEntrez le nombre d'éléments : ");
scanf("%d", &n);
Allouer dynamiquement de la mémoire en utilisant malloc()
Dans cette étape, nous allons allouer dynamiquement de la mémoire en utilisant malloc(). La taille de la mémoire à allouer est déterminée par le produit du nombre d'éléments et de la taille de chaque élément en utilisant l'opérateur sizeof().
ptr = (int *) malloc(n * sizeof(int));
if(ptr == NULL)
{
printf("\nErreur! La mémoire n'a pas été allouée.");
exit(0);
}
Stockez des valeurs dans la mémoire allouée
Dans cette étape, nous allons stocker des valeurs dans la mémoire allouée en utilisant une boucle.
for(i = 0; i < n; i++)
{
printf("\nEntrez l'élément %d : ", i + 1);
scanf("%d", ptr + i);
sum += *(ptr + i);
}
Affichez les valeurs
Dans cette étape, nous allons afficher les valeurs qui ont été stockées.
printf("\nLes éléments entrés sont : ");
for(i = 0; i < n; i++)
{
printf("%d ", *(ptr + i));
}
Libérer la mémoire
Dans cette étape, nous allons libérer la mémoire allouée en utilisant free().
free(ptr);
Résumé
Dans ce laboratoire, nous avons appris à allouer dynamiquement de la mémoire en utilisant malloc() et à libérer l'espace mémoire en utilisant free(). Nous avons appris à déclarer des variables dans la fonction main() et à allouer de la mémoire en utilisant malloc(). Nous avons également appris à stocker des données dans l'espace mémoire alloué, à afficher les valeurs stockées et puis à libérer la mémoire allouée en utilisant free().



