Puntatori e array dinamici
Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 56 di 56.
Sfida
FacileCrea 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
sizeche rappresenta il numero di interi da archiviare - Poi
sizeinteri che rappresentano i numeri da archiviare nell'array dinamico
Il tuo programma dovrebbe:
- Leggere la dimensione dall'input
- Allocare dinamicamente un array di interi usando
new[]con la dimensione specificata - Leggere gli interi dall'input e archiviarli nell'array allocato dinamicamente
- Calcolare la somma di tutti i numeri nell'array
- Trovare il valore massimo nell'array
- Stampare i risultati nel formato specificato
- 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
1Puntatori e memoria
Che cos'è un puntatore?Operatore indirizzoOperatore di dereferenziazionePuntatori nulliPuntatori e arrayMemoria dinamica con 'new'Liberare la memoria con 'delete'Riepilogo - Esercizi sui puntatori2Vettori (array dinamici)
Introduzione a std::vectorCreare un vettoreAggiungere elementiAccedere agli elementiDimensione del vettoreIterare con un ciclo forCiclo for basato su intervalloRimuovere elementiRiepilogo - Operazioni sui vettori5Progetto: strumento per l’inventario
Configurazione del progettoAggiunta e aggiornamento degli articoli3Progetto: Strumento per l’elenco delle attività
Panoramica del progettoAggiungere un’attività6Insiemi (elementi unici)
Introduzione a std::setCreare un set e aggiungere elementiVerificare la presenza di elementiRimuovere elementiIterare su un setRiepilogo - numeri unici9Sfide finali
Filtraggio dei dati di un vectorRicerca di un valore in una mapPuntatori e array dinamiciEsercitati da solo: Compilatore C++ online