Menu
Coddy logo textTech

Puntatori e array dinamici

Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 56 di 56.

challenge icon

Sfida

Facile

Crea un programma che dimostri la gestione dinamica della memoria realizzando un sistema flessibile per archiviare ed elaborare numeri. Questa sfida metterà alla prova la tua comprensione degli array dinamici, dell'allocazione della memoria, della manipolazione degli array e della corretta liberazione della memoria.

Verranno forniti i seguenti input:

  • Un intero size che rappresenta il numero di interi da archiviare
  • Poi size interi che rappresentano i numeri da archiviare nell'array dinamico

Il tuo programma dovrebbe:

  1. Leggere la dimensione dall'input
  2. Allocare dinamicamente un array di interi usando new[] con la dimensione specificata
  3. Leggere gli interi dall'input e archiviarli nell'array allocato dinamicamente
  4. Calcolare la somma di tutti i numeri nell'array
  5. Trovare il valore massimo nell'array
  6. Stampare i risultati nel formato specificato
  7. Deallocare correttamente la memoria usando delete[]

Usa il seguente formato di output esatto:

Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]

Ricorda che l'allocazione dinamica della memoria ti consente di creare array la cui dimensione viene determinata in fase di esecuzione in base all'input dell'utente. Usa new int[size] per allocare l'array e accedi agli elementi usando la notazione per array array[index]. Dopo aver finito di usare l'array, devi chiamare delete[] array per liberare la memoria allocata e prevenire perdite di memoria. L'array risiede nell'heap e rimarrà disponibile finché non lo deallochi esplicitamente.

Provalo tu

#include <iostream>
using namespace std;

int main() {
    // Leggi la dimensione dell'array
    int size;
    cin >> size;
    
    // TODO: Scrivi qui il tuo codice
    // 1. Alloca dinamicamente un array usando new[]
    // 2. Leggi gli interi e memorizzali nell'array
    // 3. Calcola la somma di tutti i numeri
    // 4. Trova il valore massimo
    // 5. Non dimenticare di deallocare la memoria usando delete[]
    
    // Visualizza i risultati (sostituisci con le variabili effettive)
    cout << "Array size: " << size << endl;
    cout << "Sum: " << /* variabile della somma */ << endl;
    cout << "Maximum: " << /* variabile del massimo */ << endl;
    
    return 0;
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C++ online