next up previous return to home!
Next:Operatore delete Up: Allocazione dinamica della memoria Previous: Allocazione dinamica della memoria

Operatore new

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 l’allocazione 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