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

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

La fonction malloc () est utilisée dans la programmation C pour stocker les données dans le tas qui est un stockage de mémoire dynamique. Il est principalement utilisé pour la déclaration dynamique des tableaux et est également utilisé pour la création de tableaux bidimensionnels. Les tableaux bidimensionnels sont utilisés pour tracer les valeurs sous la forme tabulaire ayant les colonnes et les lignes.

Dans cet article, nous apprendrons à créer un tableau bidimensionnel en utilisant la fonction malloc () en programmation C.

Qu'est-ce qu'une fonction malloc () dans la programmation C

Dans certains programmes spécifiques, nous ne pouvons souvent pas prédire la taille d'un tableau. Si nous attribuons les valeurs au tableau par nous-mêmes, il ne peut pas être modifié pendant l'exécution. Cela créera des problèmes, soit la mémoire deviendra faible pour la table.

En programmation C, pour une allocation de mémoire dynamique, différentes fonctions sont utilisées. L'un d'eux est la fonction malloc (); Il envoie une demande au tas pour un bloc de mémoire spécifique et si le tas a l'espace, il répond en allouant le bloc de mémoire demandé à Malloc ().

Le malloc () occupera l'espace du bloc de mémoire attribué en fonction de la nécessité d'un programme exécuté et après l'exécution réussie, cet espace peut être rendu libre en utilisant la fonction libre ().

Comment créer le tableau bidimensionnel à l'aide de la fonction malloc () dans la programmation C

Avant la création, considérez le chiffre suivant pour mieux comprendre comment fonctionne le tableau bidimensionnel.

Dans la figure ci-dessus, nous pouvons comprendre que dans un tableau bidimensionnel, les éléments seront d'abord fixés dans la première boîte de la colonne après cette ligne correspondante seront remplies, puis la deuxième ligne de la colonne et il continue jusqu'à Le tableau entier est rempli comme les premiers éléments seront placés dans x [0] [0 [, puis x [0] [1], alors [0] [2], alors x [0] [1], [1] [ 0], et puis ainsi.

Nous considérerons l'exemple de base suivant de la création d'un tableau bidimensionnel à l'aide du malloc () en programmation C. Nous avons créé un fichier texte, cfile.C et tapez le script suivant dedans:

#inclure
#inclure
int main()
int row = 5, col = 4;
int * a = (int *) malloc (row * col * sizeof (int));
int i, j;
pour (i = 0; i < row; i++)
pour (j = 0; j < col; j++)
* (a + i * col + j) = i + j;
printf ("Les éléments du tableau sont: \ n");
pour (i = 0; i < row; i++)
pour (j = 0; j < col; j++)
printf ("% d", * (a + i * col + j));

printf ("\ n");

libre (a);
retour 0;

Pour compiler le programme ci-dessus, nous utiliserons le compilateur GCC:

$ gcc cfile.c -o cfile

Exécuter le cfile, qui est le fichier compilé de cFile.C et afficher la sortie:

$ ./ cfile

Dans le code ci-dessus, nous avons inclus les bibliothèques de STDLIB.H (pour l'allocation de mémoire dynamique) et STdio.H (pour l'entrée et la sortie), nous avons alors déclaré la ligne, la colonne, I et J variables. Après la déclaration, nous avons appelé le malloc () pour attribuer la mémoire en fonction des valeurs de «ligne» et «colonne». Une fois la mémoire allouée, nous avons simplement utilisé les deux boucles imbriquées pour enregistrer les valeurs dans le tableau, puis en utilisant le printf () dans la boucle imbriquée, nous avons affiché les valeurs. En fin de compte, nous avons utilisé le libre () pour vider l'espace occupé attribué sur le tas par Malloc ().

Conclusion

Les tableaux bidimensionnels sont similaires aux tableaux unidimensionnels, la seule différence entre les tableaux 1D et 2D est; Les tableaux 2D stockent les données sous la forme tabulaire et les tableaux 1D stocke les données sous forme de lignes. Les tableaux sont les bases des structures de données et ils peuvent stocker une grande quantité de données du même type de données. Dans cet article, nous avons expliqué la création du tableau bidimensionnel dans la mémoire dynamique en appelant la fonction malloc ().