Per allocare in modo dinamico la memoria il C++ mette a disposizione
l'operatore new. Questo operatore costruisce uno o più oggetti nell'area
heap e ne restituisce l'indirizzo. In caso di errore (memoria non disponibile)
restituisce NULL. Pertanto il programmatore dovrà controllare lallocazione
dello spazio di memoria.
Il prototipo dell'operatore new si presenta in questo modo:
new tipo_variabile [dimensione] (valore_iniziale)
In tal caso dei tre operandi dell'istruzione solo il primo è obbligatorio.
Vediamo in dettaglio il significato di ogni operando:
Vediamo alcuni esempi per capire al meglio l'utilizzo dell'operatore new:
inizializzazione :
int* punt = new int;
in questo modo si alloca un oggetto int nell'area heap e si usa il suo indirizzo per inizializzare il puntatore punt
int* punt = new int [10];
in questo modo si allocano 10 oggetti int nell'area heap e si usa l'indirizzo del primo oggetto per inizializzare il puntatore punt
assegnazione con operazione aritmetica :
struct nome { ....... };
nome* p_nome;
p_nome = new nome [100] + 10;
in tal caso definisce la struttura nome e si dichiara il puntatore p_nome
a questa struttura, a cui si assegna l'indirizzo del decimo dei cento oggetti
di tipo nome, allocati nell'area heap
Powered by Vincenzo Capuano