single
Allocation Dynamique du Tableau
Glissez pour afficher le menu
Avant d'examiner pourquoi l'allocation dynamique est nécessaire, récapitulons rapidement les caractéristiques des tableaux statiques et dynamiques :
Tableau statique
- Taille fixe : une fois déclaré, la taille d'un tableau statique est fixe et ne peut pas être modifiée pendant l'exécution ;
- Allocation mémoire à la compilation : la mémoire requise pour un tableau statique est allouée à la compilation.
Tableaux dynamiques
- Redimensionnable : les tableaux dynamiques permettent un redimensionnement pendant l'exécution, offrant ainsi une flexibilité pour s'adapter aux exigences changeantes du programme ;
- Allocation mémoire à l'exécution : la mémoire pour les tableaux dynamiques est allouée pendant l'exécution du programme.
Les limites d'une approche statique
Considérer le programme qui invite l'utilisateur à saisir les scores de performance pour chaque jour écoulé dans le mois en cours.
Malheureusement, cela n'est pas réalisable avec un tableau statique :
main.cpp
12345678910#include <iostream> #include <ctime> int main() { std::time_t currentTime = std::time(nullptr); int day_passed = std::localtime(¤tTime)->tm_mday; int arr[day_passed]; std::cout << day_passed << std::endl; }
Cela générera une erreur de compilation car day_passed n'est pas une expression constante ; elle dépend de la valeur à l'exécution du jour actuel du mois.
Ainsi, au lieu d'un tableau statique, il faut utiliser un tableau alloué dynamiquement.
Swipe to start coding
Imaginez que vous travaillez comme météorologue et que vous devez analyser les relevés de température tout au long de la journée.
Vous allez utiliser des pointeurs et des fonctions qui manipulent des tableaux de données alloués dynamiquement.
- Initialiser la variable
sumà 0,minTempau premier élément du tableau, etmaxTempau premier élément du tableau. - Parcourir le tableau
tempsà l'aide d'une boucleforavec un indiceide 0 àhours. - Pour chaque élément
temps[i], ajouter sa valeur àsum. - Si
temps[i]est inférieur àminTemp, affectertemps[i]àminTemp. - Si
temps[i]est supérieur àmaxTemp, affectertemps[i]àmaxTemp. - Calculer la température moyenne en divisant
sumparhourset stocker le résultat dans une variableaverage. - Afficher les valeurs de
minTemp,maxTempetaveragedans la console.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion