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 arrayQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileDato 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++
2Puntatori e riferimenti
Puntatori come parametriRiferimenti - &Riferimenti come parametriPuntatori vs riferimenti3Allocazione dinamica della memoria
Operatori new e deleteMemory leakArray dinamicoArray dinamico - inserimentoEsercitati da solo: Compilatore C++ online