Video: 91. Programación en C++ || Punteros || Matriz dinámica 2024
Las matrices estáticas se asignan en la pila, que puede limitar su usabilidad. Los arrays dinámicos se asignan en el montón, lo que significa que solo están limitados por el tamaño de la memoria. Es cierto que encontrará algunas otras diferencias entre las matrices dinámicas y estáticas, pero la conclusión es que, aunque las matrices dinámicas requieren un poco más de trabajo porque debe administrar la memoria usted mismo, también proporcionan una mayor flexibilidad para trabajar con datos.
Es más que probable que desee manejar datos complejos al hacer uso de matrices dinámicas. El ejemplo de este artículo en línea tiene como objetivo mirar cómo puede usar una matriz dinámica con una estructura. Aquí hay un ejemplo del código que puede usar:
#include #include using namespace std; struct Employee {string Nombre; int Age;}; int main () {Employee * DynArray; DynArray = nuevo (nothrow) Empleado [3]; DynArray [0]. Nombre = "Harvey"; DynArray [0]. Edad = 33; DynArray [1]. Nombre = "Sally"; DynArray [1]. Edad = 26; DynArray [2]. Nombre = "Jeff"; DynArray [2]. Edad = 52; cout << "que muestra el contenido de la matriz" << endl; for (int i = 0; i <3; i ++) {cout << "name:" << dynArray [i]. Nombre << "tAge:" << dynArray [i]. Age << endl;} delete [] DynArray; return 0;}
En este ejemplo, el código comienza creando una estructura Employee que contiene el nombre y la antigüedad del empleado. Podrías usar cualquier tipo de contenedor de datos deseado; este simplemente es una estructura.
Para crear una matriz dinámica, defina un puntero a la variable de la matriz. Esta acción coloca la variable en el montón, en lugar de la pila. A continuación, crea la matriz, que contiene tres entradas de Empleado en este caso. El código rellena los datos y luego utiliza un bucle para mostrar los resultados en la pantalla. Esto es lo que deberías ver cuando ejecutas el ejemplo.
Mostrando el nombre del contenido de la matriz: Harvey Edad: 33 Nombre: Sally Edad: 26 Nombre: Jeff Edad: 52
Observe que accede a los miembros individuales de Employee accediendo al índice de matriz requerido y luego usando la sintaxis de puntos para especificar el nombre del miembro. Es importante recordar que la matriz dinámica actúa como cualquier otra matriz en la que accede a un índice para obtener una entrada específica.
Es esencial usar delete [] para liberar la memoria utilizada por DynArray. De lo contrario, su aplicación tendrá una pérdida de memoria que eventualmente afectará el rendimiento del sistema o al menos provocará que haga cosas graciosas. Debido a que nuestros sistemas ya son divertidos y actúan lo suficiente, probablemente sea una buena idea asegurarse de que su aplicación no "contribuya al problema".