Menu
Coddy logo textTech

Array dinamico

Lezione 13 di 14 del corso Puntatori in C++ di Coddy.

Grazie alla programmazione moderna e ai linguaggi di programmazione di alto livello, abbiamo strutture dati e algoritmi che svolgono per noi lavori complessi in modo semplice. Abbiamo il vettore, la pila, la coda ecc.

In particolare, il vector in C++ è una struttura dati che rappresenta un array dinamico. Non è necessario inizializzarne la lunghezza: quando usiamo il metodo .push_back(), la sua lunghezza cambia automaticamente e gli elementi che vogliamo aggiungere vengono aggiunti automaticamente, e così via. 

Ma dietro le quinte, il vector viene modificato dinamicamente e tutti i metodi e le funzioni sono predefiniti da qualcun altro. Tuttavia, è utile sapere come funziona l'allocazione dinamica di un array.

Per esempio, supponiamo di avere un array: possiamo dichiararlo e inizializzarne la lunghezza usando new e riservando spazio nella memoria. In seguito possiamo riempire quelle posizioni nella memoria con i valori che vogliamo.

// Allocazione della memoria per 5 numeri interi:
int *array = new int[5];
    
// Riempimento dell'array:
for(int i = 0; i < 5; i++)
        array[i] = i + 1;
// Stampa a schermo
for(int i = 0; i < 5; i++)
    cout << array[i] << " ";
    
// Deallocazione della memoria
delete[] array;
Output:
1 2 3 4 5

Come puoi vedere, abbiamo riservato dinamicamente spazio nella memoria per 5 numeri interi, usando un ciclo for per riempire quegli spazi nella memoria, li abbiamo stampati e poi abbiamo eliminato l'array con delete[] per deallocare la memoria in modo sicuro ed evitare perdite di memoria.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

Sfida

Facile

In input, riceverai un numero N che rappresenta il numero di elementi di un array. Crea dinamicamente un array chiamato numbers usando un puntatore e alloca spazio per N interi. Nella riga successiva dell'input, riceverai N elementi, inserendoli uno alla volta con un ciclo for, e infine stampa tutti gli elementi nelle posizioni pari (l'indice iniziale è 0). Infine, dealloca la memoria allocata all'inizio

Input
5
1 2 3 4 5

Output
1 3 5

Provalo tu

#include <iostream>

using namespace std;

int main() {
    // Scrivi il codice qui
    return 0;
};

Tutte le lezioni di Puntatori in C++

Esercitati da solo: Compilatore C++ online