Tableau alloué dynamiquement C ++

Tableau alloué dynamiquement C ++

Les tableaux sont une structure de données très importante en C ++ qui sert à tenir des types d'éléments similaires. Les tableaux sont principalement divisés en deux types différents I.e. statique et dynamique. Les tableaux statiques sont ceux dont la taille est prédéfinie dans le code tandis que les tableaux dynamiques sont ceux dont la taille est définie lors de l'exécution. Dans cet article, nous parlerons explicitement des tableaux dynamiques en C++. De plus, nous accorderons une attention particulière à leur allocation et à leur affaire en partageant un exemple détaillé avec vous dans Ubuntu 20.04.

Les tableaux alloués dynamiquement en C++

Nous avons déjà déclaré que la taille d'un tableau dynamique est définie lors de l'exécution. Cependant, on peut se demander pourquoi nous avons besoin des tableaux alloués dynamiquement en premier lieu lorsque nous pouvons utiliser facilement les tableaux statiques? Eh bien, parfois, vous rencontrez de telles situations dans lesquelles la taille d'un tableau n'est pas connue initialement. Dans ces cas, vous pouvez acquérir la taille du tableau comme entrée de l'utilisateur lors de l'exécution.

Mais cela n'est pas possible avec les tableaux statiques car la taille d'un tableau statique une fois défini dans un code ne peut pas être modifiée. C'est là que les tableaux alloués dynamiquement entrent en jeu qui peuvent définir les tableaux de n'importe quelle taille souhaitée lors de l'exécution. Les tableaux dynamiques en C ++ peuvent facilement être créés avec le «nouveau» mot-clé. La syntaxe exacte sera clarifiée plus tard dans cet article.

Cependant, un point important à noter ici est que les tableaux statiques sont toujours créés sur la pile de votre système et que votre système lui-même prend la responsabilité de libérer sa pile une fois que votre programme se termine. D'un autre côté, les tableaux alloués dynamiquement sont toujours créés sur le tas et vous devez libérer manuellement la mémoire occupée par un tableau dynamique. Maintenant, vous devez voir l'exemple discuté ci-dessous pour comprendre l'utilisation des tableaux alloués dynamiquement.

Utilisation des tableaux alloués dynamiquement en C ++ dans Ubuntu 20.04

Dans cet exemple, nous voulons vous apprendre l'utilisation des tableaux alloués dynamiquement en C++. Nous vous expliquerons comment vous pouvez déclarer et initialiser un tableau dynamique lors de l'exécution. Ensuite, nous afficherons les éléments du tableau alloué dynamiquement. Enfin, nous vous montrerons comment vous pouvez traiter la mémoire occupée par le tableau dynamique en C++. Pour apprendre tout cela, vous devrez voir le code indiqué dans l'image suivante:

Dans ce programme C ++, nous avons notre fonction «Main ()» dans laquelle nous avons défini un «Num» entier «Num». Cet entier correspondra à la taille de notre tableau dynamique que nous allons créer plus tard. Ensuite, nous avons affiché un message sur le terminal demandant à l'utilisateur de saisir n'importe quelle taille de son choix pour le tableau dynamique. Après cela, nous avons pris cette taille comme entrée de l'utilisateur. Ensuite, avec l'aide de l'instruction «int * array = new int (num)», nous avons déclaré un tableau dynamique à l'exécution qui a la taille égale à la variable «num». «Array» fait référence au nom de ce tableau.

Après cela, nous avons affiché à nouveau un message sur le terminal demandant à l'utilisateur de saisir les éléments de ce tableau. Ce message est suivi d'une boucle «pour» qui itère jusqu'à la taille du tableau I.e. nobs. Dans cette boucle, nous avons pris les éléments de ce tableau dynamique comme entrée de l'utilisateur.

Une fois le tableau dynamique rempli, nous voulions afficher ses éléments sur le terminal pour lequel nous avons d'abord affiché un message à l'aide de la déclaration «cout». Ensuite, nous avons une autre boucle «pour» qui itère à nouveau à travers la taille du tableau dynamique. Dans cette boucle, nous avons simplement affiché les éléments du tableau sur le terminal. Après cela, nous voulions traiter la mémoire occupée par ce tableau dynamique pour lequel nous avons utilisé la déclaration «supprimer [] Array». Enfin, pour être en toute sécurité, nous avons utilisé l'instruction «Array = Null» pour supprimer également la référence nul du tableau dynamique dont nous venons de traiter.

Après avoir écrit ce code, lorsque nous l'avons compilé et exécuté, nous avons d'abord été invités à saisir la taille du tableau dynamique. Nous voulions que notre tableau dynamique soit de taille «5» comme indiqué dans l'image ci-dessous:

Dès que nous sommes entrés dans la taille de notre tableau dynamique, on nous a demandé de le remplir. Pour ce faire, nous avons entré les nombres de 1 à 5 comme indiqué dans l'image suivante:

Dès que nous avons appuyé sur la touche Entrée après avoir rempli notre tableau dynamique, ses éléments ont été imprimés sur le terminal. De plus, le traitement de la mémoire dynamique a également eu lieu à cause de laquelle une notification à ce sujet est également apparue sur le terminal comme indiqué dans l'image ci-dessous:

Maintenant, nous allons légèrement modifier le même code. Jusqu'à présent, nous avons appris comment nous pouvons initialiser un tableau dynamique en C ++ et afficher ses éléments sur le terminal. Bien que nous ayons également incorporé le code pour traiter cette mémoire dans notre programme, cependant, nous ne sommes toujours pas sûrs de savoir si la mémoire dynamique occupée a été traitée avec succès ou non. Pour ce faire, nous essaierons d'accéder à une partie de cette mémoire dynamique après l'avoir traité. S'il est accessible avec succès, cela signifiera que le traitement de la mémoire n'a pas eu lieu correctement.

Cependant, si nous rencontrons un message d'erreur tout en accédant à cette mémoire après l'avoir traité, cela signifiera que notre mémoire dynamique occupée a maintenant été traitée avec succès. Vous devez jeter un œil au code modifié suivant pour comprendre ceci:

Dans ce code C ++ modifié, nous avons simplement ajouté une ligne à la fin de notre programme I.e. couter<

Lorsque nous avons compilé et exécuté ce code, il a parfaitement fonctionné, cependant, dès que cette dernière ligne a été exécutée, une erreur a été générée se référant à un défaut de segmentation qui signifie en fait que vous essayez d'accéder à un emplacement de mémoire qui n'existe plus. Ceci s'affiche dans l'image ci-jointe.

Cela signifie que le traitement de notre tableau dynamique a eu lieu avec succès. Cette sortie implique également que la tentative d'accéder à un emplacement de mémoire qui n'existe plus se traduit uniquement d'une erreur d'exécution et non d'une erreur de compilation. Cela signifie qu'un tel code sera toujours compilé avec succès et vous ne pourrez pas attraper une telle erreur avant d'exécuter votre code.

Conclusion

Cet article visait à vous enseigner l'utilisation des tableaux alloués dynamiquement en C ++ dans Ubuntu 20.04. Pour cela, nous avons d'abord souligné la nécessité d'utiliser les tableaux alloués dynamiquement en C++. Ensuite, nous vous avons parcouru un exemple détaillé qui a expliqué comment vous pouvez créer et gérer les tableaux dynamiques en C++. De plus, nous avons également partagé la méthode de traitement des tableaux dynamiques. Après avoir parcouru ce guide, vous obtiendrez sûrement une compréhension de base du traitement des tableaux dynamiques en C++.