Comment créer un tableau à l'aide de Malloc dans la programmation C

Comment créer un tableau à l'aide de Malloc dans la programmation C

En programmation C, le tableau est utilisé pour stocker une gamme de valeurs du même type de données et il occupe un espace de mémoire qui peut être statique ou dynamique. Le malloc est une fonction utilisée dans la programmation C pour l'allocation de mémoire dynamique.

Dans cet article, nous découvrirons la fonction malloc pour créer un tableau en programmation C.

Qu'est-ce qu'un malloc () en programmation C

La mémoire dynamique est allouée au programme pendant son exécution en fonction de l'espace nécessaire par lui. Dans la mémoire statique, la mémoire fixe est allouée au programme avant l'exécution du programme qui a les inconvénients suivants:

  • Le tableau déclaré avec la taille fixe occupera la taille fixe de la mémoire système
  • Si le tableau a des valeurs inférieures à la taille déclarée, l'espace libre sera un gaspillage et ne peut pas être utilisé par un autre programme
  • Si le tableau a des valeurs plus que la taille déclarée, le programme peut donner des erreurs

Pour éviter ces inconvénients, nous utiliserons le schéma d'allocation de mémoire dynamique car ce schéma attribuera la mémoire du bloc nécessaire par le programme pendant son exécution. La mémoire dynamique a des fonctions différentes utilisées comme pointeur vers le programme.

La fonction malloc () signifie «allocation de mémoire» et est utilisée pour l'allocation de mémoire dynamique lors de l'exécution du programme. Lorsque la fonction malloc () est appelée, elle envoie une demande d'un bloc de mémoire au tas (c'est un segment de mémoire où la mémoire est allouée au hasard). Si le tas a une mémoire équivalente à ce bloc de mémoire, il acceptera la demande et affectera cette taille à la fonction malloc () par rapport à sa demande, et si elle n'a pas de mémoire, elle renverra la valeur nul. Lorsque nous avons terminé avec le bloc de mémoire, nous pouvons l'effacer en utilisant la fonction libre () afin que le bloc de mémoire puisse être libre et être utilisé par les autres instructions du programme. Pour une allocation de mémoire dynamique, nous devons inclure le «stdlib.H ”dans les fichiers d'en-tête et la syntaxe générale de l'utilisation de la fonction malloc est:

1
$ pointer = (CastType *) Malloc (taille);

Nous pouvons utiliser n'importe quelle variable au lieu de «pointeur», puis nous pouvons remplacer le «casttype» par le type de données dont les valeurs vont stocker dans le tableau. Ensuite, utilisez la fonction malloc () et mentionnez la taille de la mémoire dont nous avions besoin.

Comment utiliser la fonction malloc en programmation C pour créer un tableau

Pour une meilleure compréhension de la création d'un tableau à l'aide de la fonction malloc (), nous créerons un programme. Pour utiliser la programmation C dans Linux, nous devons installer le compilateur GCC à l'aide de la commande:

1
$ sudo apt install gcc

Créez un fichier texte à l'aide de l'éditeur Nano:

1
$ nano myfile.c

Tapez le code suivant:

1
2
3
4
5
6
7
8
9
dix
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Inclure # Inclure
int Main (vide)

INT SIZE, I, * MY_Array;
printf («\ n Veuillez taper la taille du tableau:»);
scanf («% d» et taille);
my_array = (int *) malloc (taille * sizeof (int));
printf («\ n Entrez les valeurs du tableau:»);
pour (i = 0; iscanf ("% d", & my_array [i]);
printf («\ n Les valeurs du tableau sont:»);
pour (i = 0; iprintf ("% d", my_array [i]);
printf ("\ n");

Enregistrez le script par le nom de «MyFile.C ”en utilisant le ctrl + s puis quittez l'éditeur en appuyant sur Ctrl + x. Après l'enregistrer, compilez le code et vérifiez s'il y a des erreurs ou non en utilisant la commande:

1
$ gcc myfile.c -o myfile

Le «MyFile» sera un fichier exécutable, exécuter le «MyFile» à l'aide de la commande:

1
$ ./mon fichier

Le programme a été exécuté avec succès. L'explication du code ci-dessus est::

  • Nous avons inclus les bibliothèques de C qui sont stdlib.H pour l'allocation de mémoire dynamique et stdio.H Pour d'autres fonctions comme printf et scanf
  • Nous avons initialisé le corps principal du programme avec vide car la fonction ne rendra pas une valeur
  • Nous avons déclaré la taille de deux variables, I, et un pointeur "* my_array"
  • Simplement utilisé le printf commande d'imprimer le «Veuillez saisir la taille du tableau"Et enregistré l'entrée par l'utilisateur en variable"taille"
  • Ensuite, à l'aide de la fonction malloc, a demandé au tas d'attribuer de la mémoire en fonction de la valeur stockée dans le "taille”Variable et attribué la mémoire au tableau
  • A demandé à l'utilisateur de saisir les valeurs du tableau et de les stocker dans un tableau à l'aide de la boucle pour
  • Enfin, imprimé toutes les valeurs de My_array Utilisation de la boucle pour

Conclusion

La fonction malloc () est utilisée dans l'allocation de mémoire dynamique et peut également être utilisée pour stocker les valeurs dans le tableau. Dans cet article, nous avons discuté de la façon de déclarer et d'utiliser le tableau à l'aide de la fonction malloc (). L'approche d'allocation de mémoire dynamique est recommandée lorsque vous souhaitez modifier la taille d'un tableau pendant l'exécution du programme.