A base C + + de programación, variables y matrices se declaran por el programador directamente en el código . Sin embargo , en la construcción de estructuras de datos tales como matrices de cambio de tamaño dinámicamente , el programador debe aprender a asignar dinámicamente la memoria durante la ejecución de código. Arrays asignados de esta manera tienen algunas ventajas , como la longitud no constante en la declaración . El programador puede asignar arrays 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 + +, hará que la asignación de memoria y eliminación sencilla . Cosas que necesitará
Editor de texto
C /C + + Compiler (como Microsoft Visual Studio o GCC )
Mostrar más instrucciones
1
Crear un puntero del Tipo de datos de la matriz contendrá . Por ejemplo, para crear dinámicamente una matriz de enteros , un puntero entero debe existir para hacer referencia a la matriz:
int * arr_ptr ;
El puntero " arr_ptr " permitirá ahora a un programador para hacer referencia a lo profundo memoria durante la ejecución .
2
Utilice el puntero para asignar memoria . La "nueva " palabra clave , que es específica de las bibliotecas ( + y no está disponible en la norma C ) C + afirma memoria durante la ejecución para el uso del puntero llamado :
arr_ptr = new int [ 6 ] ;
< p> En este caso, la "nueva" palabra toma un bloque de seis tramos enteros de tamaño de la memoria. Sin embargo , a diferencia de las matrices declaradas antes de la ejecución, matrices dinámicas se pueden declarar con entrada variable :
int i = 6 ;
arr_ptr = new int [ i];
permite al programador crear matrices que pueden cambiar el tamaño de la base de la necesidad más que la designación espacio predeterminado .
3
Asignar un conjunto de tipos de datos creados por el usuario . Después de C + + procedimiento de asignación de memoria , el programador puede crear matrices de tipos de datos declarados en clases separadas :
int i = 5 ;
NewClass * class_ptr ;
class_ptr = nueva NewClass [ i]; .
el puntero " class_ptr " hará referencia a una variable del tipo de datos " NewClass " , lo más probable se define en una descripción de la clase en otro archivo
4
Eliminar la array. Cuando ya no se necesita una matriz (o ha sido copiado en otra matriz , posiblemente durante una operación de cambio de tamaño ), el programador debe asegurarse de eliminarlo. Asignado memoria que no se borra , pero ya no hace referencia , se ocupan memoria valiosa y , con el tiempo , causar lo que se conoce como pérdida de memoria
int i = 5 ; .
NewClass * class_ptr ;
class_ptr = new NewClass [ i];
class_ptr delete [];
Ahora , la matriz de referencia " class_ptr " se borrará , y la memoria liberada para otros usos.