Pointeur et tableau dynamique
Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 56 sur 56.
Défi
FacileCréez un programme qui démontre la gestion dynamique de la mémoire en construisant un système flexible de stockage et de traitement de nombres. Ce défi testera votre compréhension des tableaux dynamiques, de l'allocation de mémoire, de la manipulation de tableaux et du nettoyage approprié de la mémoire.
Les entrées suivantes seront fournies :
- Un entier
sizereprésentant le nombre d'entiers à stocker - Ensuite,
sizeentiers représentant les nombres à stocker dans le tableau dynamique
Votre programme doit :
- Lire la taille à partir de l'entrée
- Allouer dynamiquement un tableau d'entiers en utilisant
new[]avec la taille spécifiée - Lire les entiers à partir de l'entrée et les stocker dans le tableau alloué dynamiquement
- Calculer la somme de tous les nombres du tableau
- Trouver la valeur maximale dans le tableau
- Afficher les résultats dans le format spécifié
- Désallouer correctement la mémoire en utilisant
delete[]
Utilisez le format de sortie exact suivant :
Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]Rappelez-vous que l'allocation dynamique de mémoire vous permet de créer des tableaux dont la taille est déterminée au moment de l'exécution en fonction de l'entrée de l'utilisateur. Utilisez new int[size] pour allouer le tableau et accédez aux éléments en utilisant la notation de tableau array[index]. Une fois que vous avez fini d'utiliser le tableau, vous devez appeler delete[] array pour libérer la mémoire allouée et éviter les fuites de mémoire. Le tableau existe sur le tas (heap) et persistera jusqu'à ce que vous le désallouiez explicitement.
Essayez vous-même
#include <iostream>
using namespace std;
int main() {
// Lire la taille du tableau
int size;
cin >> size;
// À FAIRE : Écrivez votre code ici
// 1. Allouer dynamiquement un tableau en utilisant new[]
// 2. Lire les entiers et les stocker dans le tableau
// 3. Calculer la somme de tous les nombres
// 4. Trouver la valeur maximale
// 5. N'oubliez pas de libérer la mémoire en utilisant delete[]
// Afficher les résultats (remplacer par les variables réelles)
cout << "Array size: " << size << endl;
cout << "Sum: " << /* variable de somme */ << endl;
cout << "Maximum: " << /* variable max */ << endl;
return 0;
}Toutes les leçons de Logique et Flux
1Pointeurs et mémoire
Qu'est-ce qu'un pointeur ?Opérateur d'adresseOpérateur de déréférencementPointeurs nulsPointeurs et tableauxMémoire dynamique avec 'new'Libérer la mémoire avec 'delete'Récapitulatif - Pratique des pointeurs2Vecteurs (Tableaux dynamiques)
Introduction à std::vectorCréer un vecteurAjouter des élémentsAccéder aux élémentsTaille d'un vecteurItérer avec une boucle ForBoucle For basée sur l'intervalleSupprimer des élémentsRécapitulatif - Opérations sur les vecteurs3Projet : Outil de liste de tâches
Présentation du projetAjouter une tâche6Ensembles (Éléments uniques)
Introduction à std::setCréer un Set et ajouter des élémentsVérifier la présence d'élémentsSupprimer des élémentsParcourir un SetRécapitulatif - Nombres uniques9Défis finaux
Filtrage de données de vecteurRecherche de valeur dans une MapPointeur et tableau dynamique