Menu
Coddy logo textTech

Array dinamico - inserimento

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

Infine, è importante sapere come possiamo aggiungere dinamicamente un elemento a un array. Se non puoi usare un vettore e il tuo array è già pieno, devi trovare un modo per modificarne dinamicamente la lunghezza e aggiungere l'elemento desiderato

Questo è un piccolo esempio di come possiamo modificare dinamicamente l'array e farlo funzionare come se fosse un vector

  • Abbiamo l'array iniziale allocato dinamicamente
  • Creiamo un nuovo array allocato dinamicamente con una lunghezza di + 1
  • Copiamo tutti gli elementi dal vecchio al nuovo array
  • All'ultimo indice (il +1) aggiungiamo l'elemento desiderato
  • Eliminiamo il vecchio array
  • E facciamo in modo che il puntatore del vecchio array eliminato punti al nuovo array modificato
  • Infine, alla fine del programma, eliminiamo il puntatore dell'array un'ultima volta
int *array = new int[5]; // Array iniziale
for(int i = 0; i < 5; i++)
    array[i] = i + 1;
    
int *newarray = new int[6]; // Nuovo array con lunghezza aumentata di +1

for(int i = 0; i < 5; i++)
    newarray[i] = array[i]; // Copia tutti gli elementi
newarray[5] = 6; // Aggiungi l'ultimo elemento

delete[] array; // Dealloca il vecchio array
array = newarray; // Fallo puntare al nuovo array

for(int i = 0; i < 5; i++)
    cout << array[i] << " ";
    
delete[] array; // Dealloca il nuovo array
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

Dato l’array allocato dinamicamente, non modificare il codice predefinito; a metà aggiungi il codice per inserire 3 numeri in fondo all’array, come nell’esempio della lezione

NON modificare il codice predefinito

Provalo tu

#include <iostream>

using namespace std;

int main() {

    int *numbers = new int[5];
    for(int i = 0; i < 5; i++)
        numbers[i] = i + 1;
    // NO CAMBIES EL CÓDIGO DE ARRIBA


    // Escribe tu código aquí

    // Introduce 3 números enteros

    // Añádelos dinámicamente al arreglo "numbers"


    // NO CAMBIES EL CÓDIGO DE ABAJO
    for(int i = 0; i < 8; i++)
        cout << numbers[i] << " ";
    delete[] numbers;

    return 0;
}

Tutte le lezioni di Puntatori in C++

Esercitati da solo: Compilatore C++ online