Tecnología

Inicio

Cómo asignar dinámicamente una matriz usando la clase en C ++

Cómo asignar dinámicamente una matriz usando la clase en C ++


En C ++ básico de programación, variables y matrices se declaran por el programador directamente en el código. Sin embargo, cuando la construcción de estructuras de datos tales como matrices dinámicamente cambiar el tamaño, el programador debe aprender a asignar dinámicamente la memoria durante la ejecución de código. Las matrices asignados de esta manera tienen algunas ventajas, como la longitud no constante en la declaración. El programador puede asignar conjuntos de tipos de datos escalares y clases creadas por el usuario de forma idéntica. El uso de punteros y palabras clave incorporadas en la biblioteca estándar, C ++ hace que la asignación de memoria y eliminación sencilla.

Instrucciones

1 Crear un puntero del tipo de datos de la matriz contendrá. Por ejemplo, para crear dinámicamente una matriz de enteros, debe existir un puntero entero para hacer referencia a la matriz:

int * arr_ptr;

El puntero "arr_ptr" permitirá ahora a un programador para hacer referencia a la memoria profunda durante la ejecución.

2 Utilizar el puntero para asignar memoria. La "nueva" palabra clave, que es específico para las bibliotecas de C ++ (y no está disponible en C estándar) afirma memoria durante la ejecución para el uso del puntero llamando a:

arr_ptr = new int [6];

Aquí, la "nueva" palabra clave agarra un bloque de seis tramos enteros de tamaño de memoria. Sin embargo, a diferencia de las matrices declaradas antes de tiempo de ejecución, matrices dinámicas se pueden declarar con entrada variable:

int i = 6;

arr_ptr = new int [i];

Esto permite al programador crear matrices que pueden cambiar el tamaño en base a la necesidad más que designación espacio predeterminado.

3 Asignar una matriz de tipos de datos creados por el usuario. Siguiendo el procedimiento de asignación de memoria C ++, el programador puede crear matrices de tipos de datos declarados en clases separadas:

int i = 5;

NewClass * class_ptr;

class_ptr = new NewClass [i];

El "class_ptr" puntero hará referencia a una variable de la "NewClass" tipo de datos, lo más probable se define en una descripción de la clase en otro archivo.

4 Eliminar la matriz. Cuando una matriz ya no es necesario (o ha sido copiado en otra matriz, posiblemente durante una operación de cambio de tamaño) el programador debe asegurarse para eliminarlo. memoria asignada que no se elimina, pero ya no se hace referencia, puede tomar hasta la memoria valioso y, con el tiempo, causar lo que se conoce como una pérdida de memoria.

int i = 5;

NewClass * class_ptr;

class_ptr = new NewClass [i];

Eliminar class_ptr [];

Ahora, la matriz de la que hace referencia "class_ptr" será borrado, y la memoria liberada para otros usos.