EC++: new/delete vs. new[]/delete[]

Appunti tratti dalla rilettura di Effective C++ di Scott Meyers. Secondo blocco: Gestione della memoria.

(5) Usa la stessa forma nei corrispondenti new e delete.

Le due forme degli operatori per la gestione della memoria sono relative alla gestione di un singolo oggetto o di un array (usando le parentesi quadre).

Quando si alloca un array di oggetti, usando la forma new[], occorre deallocarli usando la corrispondente delete[], altrimenti si causerà un comportamento indefinito del nostro codice.

Questo il modo corretto di allocare/deallocare memoria per un singolo oggetto e per un array di oggetti:

string* pString = new string;
string* strings = new string[100];

// ...

delete pString;
delete[] strings;

Nessun commento:

Posta un commento