Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Allocazione Dinamica dell'Array | Allocazione Dinamica della Memoria
Puntatori e Riferimenti in C++
Sezione 4. Capitolo 3
single

single

bookAllocazione Dinamica dell'Array

Scorri per mostrare il menu

Prima di esplorare perché l'allocazione dinamica sia necessaria, riepiloghiamo rapidamente le caratteristiche degli array statici e dinamici:

Array Statico

  • Dimensione Fissa: una volta dichiarata, la dimensione di un array statico è fissa e non può essere modificata durante l'esecuzione;
  • Allocazione della Memoria in fase di Compilazione: la memoria richiesta per un array statico viene allocata in fase di compilazione.

Array Dinamici

  • Ridimensionabili: gli array dinamici consentono il ridimensionamento durante l'esecuzione, offrendo flessibilità per adattarsi ai requisiti variabili del programma;
  • Allocazione della memoria a runtime: la memoria per gli array dinamici viene allocata durante l'esecuzione del programma.

Le Limitazioni di un Approccio Statico

Si consideri il programma che richiede all'utente di inserire i punteggi delle prestazioni per ogni giorno trascorso nel mese corrente.

Purtroppo, non è possibile ottenere questo risultato utilizzando un array statico:

main.cpp

main.cpp

copy
12345678910
#include <iostream> #include <ctime> int main() { std::time_t currentTime = std::time(nullptr); int day_passed = std::localtime(&currentTime)->tm_mday; int arr[day_passed]; std::cout << day_passed << std::endl; }
Note
Nota

Questo genererà un errore di compilazione perché day_passed non è un'espressione costante e dipende dal valore a runtime del giorno corrente del mese.

Quindi, invece di un array statico, è necessario utilizzare un array allocato dinamicamente.

Compito

Scorri per iniziare a programmare

Immagina di lavorare come meteorologo e di dover analizzare le rilevazioni di temperatura durante la giornata.

Si lavorerà con puntatori e funzioni che manipolano array di dati allocati dinamicamente.

  1. Inizializzare le variabili sum a 0, minTemp al primo elemento dell'array e maxTemp al primo elemento dell'array.
  2. Iterare sull'array temps utilizzando un ciclo for con un indice i da 0 a hours.
  3. Per ogni elemento temps[i], aggiungere il suo valore a sum.
  4. Se temps[i] è minore di minTemp, assegnare temps[i] a minTemp.
  5. Se temps[i] è maggiore di maxTemp, assegnare temps[i] a maxTemp.
  6. Calcolare la temperatura media dividendo sum per hours e memorizzarla in una variabile average.
  7. Stampare i valori di minTemp, maxTemp e average sulla console.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt