WorksheetsC++ Allocazione dinamica
Total questions: 7
Worksheet time: 7mins
const int n = 3;
...
int x[n];
Dovrebbe compilare
Dovrebbe dare errore di compilazione
Si tratta di allocazione di memoria dinamica
Si tratta di allocazione di memoria statica
int n = 3;
...
int *x = new int[n];
Compila
Errore di compilazione
Si tratta di allocazione di memoria dinamica
Si tratta di allocazione di memoria statica
int *x = new int[5];
delete x;
Deallocazione memoria corretta
Deallocazione memoria incorretta
Si tratta di allocazione di memoria dinamica
Si tratta di allocazione di memoria statica
Quali sono i vantaggi dell'allocazione di memoria dinamica piuttosto che statica?
Semplifica lo sviluppo del codice in team
Permette di allocare dati con dimensione maggiore
È più facile da gestire
I dati non vengono automaticamente deallocati quando la variabile esce dallo "scope"
Quali sono gli svantaggi dell'allocazione di memoria dinamica piuttosto che statica?
Rischio di spreco di memoria se dati sono allocati più volte
Rischio di spreco di memoria se dati non sono deallocati opportunamente
Rischio di errore run time (segmentation fault) se accedo a memoria prima della sua allocazione
Rischio di errore run time (segmentation fault) se dealloco la stessa memoria più volte
Quale strategia di allocazione di memoria è più veloce in generale?
Dinamica
Statica
Dipende dai casi
La deallocazione della memoria dinamica
avviene con l'operatore delete
avviene con l'operatore new
cancella il contenuto della memoria interessata
segnala che la memoria interessata non è più riservata e può quindi essere riutilizzata per altri scopi
