Nwlapcug.com


Come allocare dinamicamente una matrice utilizzando la classe in C++

Come allocare dinamicamente una matrice utilizzando la classe in C++


A base di programmazione C++, variabili e matrici vengono dichiarate dal programmatore direttamente nel codice. Tuttavia, durante la creazione di strutture di dati come ridimensionamento dinamico matrici, il programmatore deve imparare a allocazione dinamica della memoria durante l'esecuzione di codice. Le matrici allocate in questo modo avere alcuni benefici, come la lunghezza non costante alle dichiarazione. Il programmatore può allocare matrici di tipi di dati scalari e classi create dall'utente in modo identico. Utilizzando i puntatori e le parole chiave costruiti nella libreria standard, C++ rende l'eliminazione e allocazione di memoria semplice.

Istruzioni

1

Creare un puntatore del tipo di dati che della matrice conterrà. Ad esempio, per creare dinamicamente una matrice di numeri interi, un puntatore intero deve esistere per fare riferimento la matrice:

int * arr_ptr;

Il puntatore "arr_ptr" ora permetterà un programmatore per fare riferimento a memoria profonda durante l'esecuzione.

2

Utilizzare il puntatore per allocare memoria. La parola chiave "new", che è specifico per le librerie C++ (e non disponibili nel linguaggio C standard) sostiene la memoria durante l'esecuzione per l'utilizzo del puntatore del chiamante:

arr_ptr = new int [6];

Qui, la parola chiave "new" afferra un blocco di sei sezioni intero-dimensioni della memoria. Tuttavia, a differenza delle matrici dichiarate prima fase di esecuzione, le matrici dinamiche possono essere dichiarate con input variabile:

int i = 6;

arr_ptr = new int [i];

Questo consente al programmatore di creare matrici che possono ridimensionare basata su necessità piuttosto che predeterminato designazione di spazio.

3

Allocare una matrice di tipi di dati creati dall'utente. A seguito di procedura di allocazione di memoria C++, il programmatore può creare matrici di tipi di dati dichiarati in classi separate:

int i = 5;

newClass * class_ptr;

class_ptr = nuovo newClass [i];

Il puntatore "class_ptr" farà riferimento a una variabile del tipo di dati "newClass", molto probabilmente definita in una descrizione di classe in un altro file.

4

Elimina la matrice. Quando una matrice non è più necessario (o è stata copiata in un'altra matrice, possibilmente durante un'operazione di ridimensionamento) il programmatore dovrebbe fare in modo di eliminarlo. Memoria allocata che non eliminato, ma non fa riferimento, può occupare memoria preziosa e, nel corso del tempo, il che cosa è conosciuto come una perdita di memoria.

int i = 5;

newClass * class_ptr;

class_ptr = nuovo newClass [i];

delete [] class_ptr;

Ora, la matrice a cui fa riferimento "class_ptr" verrà eliminata e la memoria liberata per altri usi.