Menu
Coddy logo textTech

Récapitulatif : Tableaux dynamiques

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 37 sur 63.

challenge icon

Défi

Facile

Écrivez un programme C qui crée un tableau dynamique basé sur la saisie de l'utilisateur, traite les données et démontre une gestion appropriée de la mémoire. Votre programme doit :

  1. Lire un entier n de l'utilisateur représentant le nombre d'éléments à stocker
  2. Utiliser malloc() avec sizeof() pour allouer dynamiquement de la mémoire pour un tableau de n entiers
  3. Vérifier si l'allocation de mémoire a réussi - si elle échoue, afficher Memory allocation failed! et terminer le programme
  4. Si l'allocation réussit, afficher Array of size [n] created successfully!
  5. Lire n valeurs entières de l'utilisateur et les stocker dans le tableau alloué
  6. Calculer et afficher la somme de tous les éléments au format : Sum: [value]
  7. Trouver et afficher la valeur minimale au format : Minimum: [value]
  8. Compter combien d'éléments sont supérieurs à la moyenne et les afficher au format : Elements above average: [count]
  9. Afficher la mémoire totale utilisée en octets au format : Memory used: [bytes] bytes
  10. Utiliser free() pour désallouer la mémoire
  11. Afficher Memory successfully freed! pour confirmer le nettoyage approprié

N'oubliez pas d'inclure l'en-tête <stdlib.h> pour utiliser malloc() et free(). Ce défi teste votre compréhension complète de la gestion dynamique de la mémoire, de l'allocation à l'utilisation jusqu'au nettoyage approprié.

Par exemple, si l'entrée est :

5
12 8 15 3 20

Votre sortie devrait être :

Array of size 5 created successfully!
Sum: 58
Minimum: 3
Elements above average: 2
Memory used: 20 bytes
Memory successfully freed!

Ce défi complet démontre le cycle de vie complet de la gestion dynamique de la mémoire tout en effectuant des opérations de traitement de données significatives sur le tableau alloué.

Essayez vous-même

#include <stdio.h>
#include <stdlib.h>

int main() {
    // Lire le nombre d'éléments
    int n;
    scanf("%d", &n);
    
    // À FAIRE : Écrivez votre code ci-dessous
    // 1. Allouer de la mémoire pour n entiers en utilisant malloc()
    // 2. Vérifier si l'allocation a réussi
    // 3. Lire n entiers dans le tableau
    // 4. Calculer la somme, trouver le minimum, compter les éléments au-dessus de la moyenne
    // 5. Afficher les résultats et libérer la mémoire
    
    return 0;
}

Toutes les leçons de Logic & Flow