? Matrices en la programación de computadoras son conjuntos o secuencias de valores contenidos en un único nombre de variable. Estas estructuras de datos permiten a los programadores representan la serie de datos o listas de datos para una variedad de propósitos , tales como clasificación o iteración . Sin embargo, en muchos lenguajes de programación , como C /C + +, los programadores deben declarar arrays tamaños de matriz estáticos que no cambian . Mediante el uso de técnicas de asignación de memoria en un lenguaje como C + +, el programador puede crear dinámicamente arrays o incluso cambiar el tamaño de las matrices durante la ejecución del programa. Arrays
lenguajes de bajo nivel como C o C + + , las matrices son estáticas . Una vez declarado con un valor de tamaño , la matriz siempre mantendrá ese tamaño. El compilador asigna un bloque de memoria para la matriz continua . Las demás funciones o variables que necesitan memoria se colocan después de la serie . En consecuencia , la matriz no puede cambiar de tamaño sin sobrescribir los datos que le sigue. Así , por ejemplo , una vez que un programador declara una matriz con veinte espacios , la matriz siempre tendrá veinte espacios , tanto si se utilizan o no, para la vida de la estructura de datos .
Asignación de memoria en el montón
Para evitar esta limitación, sin embargo , los programadores pueden asignar memoria en el montón. Normalmente , las variables y matrices declaradas en un programa o función se colocan en la pila , lo que representa esencialmente la memoria a corto plazo . Una vez que el tiempo de vida de la función de la variedad que existe en los acabados , se elimina el array. Mediante el uso de la "nueva" palabra clave , sin embargo , el programador puede recoger la memoria de la Pila, que es la memoria a largo plazo que existe fuera de la función que se declara la matriz. Además, el programador puede utilizar el montón de declarar arrays de forma dinámica.
Dinámico Arrays
arrays , el programador tiene que declarar el tamaño de la matriz en declaración. Este tamaño debe ser representado por un valor constante , o bien una variable constante o un número entero . Sin embargo , utilizando el operador "new" , el programador puede utilizar las variables regulares para matrices de tamaño , y el usuario puede incluso entrar en el valor de estas variables en tiempo de ejecución . El siguiente ejemplo muestra la diferencia :
int main () {
int arr [ 5 ] ; //nueva matriz , debe ser de un tamaño con el tamaño valueint constante = 5 ; int * dynamic_array = new int [tamaño] ; //tamaño de la matriz es dinámico
arrays Redimensionar
con estas matrices dinámicas , el programador puede entonces crear matrices que se pueden cambiar de tamaño . La clase "vector " representa una matriz expandir o reducir dinámicamente que taks ventaja de matrices dinámicas . El siguiente ejemplo muestra cómo crear una sencilla matriz que se hace más grande en tamaño :
int main () { int
* arr = new int [ 5 ] ; nuevo_tam int = 10 ; < br >
arr [ 0 ] = 1 ; arr [ 1 ] = 2 ;
/* resize * /int * arr2 = new int [ nuevo_tam ] ;
arr2 [ 0 ] = arr [ 0 ] ; arr2 [ 1 ] = arr [ 1 ] ;
delete [ ] arr , arr = arr2 ;
return 0 ;}