Matriz ordinaria
Se puede crear una matriz en la memoria normal de la siguiente manera:
char arr [] = 'p', 'q', 'r', 's', 't';Para eliminar esta matriz, solo déjelo salir del alcance.
Matriz de tiendas gratis
Se puede crear una matriz dinámicamente, durante la ejecución del programa, en la tienda gratuita. Tal matriz se puede crear de la siguiente manera:
char *ptr = new Char [5] 'P', 'Q', 'r', 's', 't';La misma matriz se puede crear en la función principal de C ++ de la siguiente manera:
char *ptr = nuevo char [5];Nota del uso del operador, nuevo, aquí. El PTR es un puntero. ARR arriba también es un puntero, pero se abordó desde un ángulo diferente. Para eliminar esta matriz, use el operador, elimine [] como se muestra a continuación. La matriz en la tienda gratuita no se puede eliminar dejando que salga del alcance. Entonces, debe eliminarse con el operador Eliminar [].
Este artículo ilustra las diferentes formas de eliminar una matriz creada de las dos maneras.
Contenido del artículo
- Eliminar la matriz ordinaria
- Eliminar la matriz de puntero creada dinámicamente de la tienda gratuita
- Conclusión
Eliminar la matriz ordinaria
Para eliminar una matriz ordinaria, solo déjelo salir del alcance. Aunque la función Main () es la función de capital de un programa C ++, sigue siendo una función. En el siguiente programa, se crea una matriz en un alcance local anidado (bloque) en la función principal de C ++:
#incluirLa salida es, Q. El alcance anidado es el bloque de la construcción if. La matriz se creó en este bloque y se usó en el mismo bloque imprimiendo el segundo valor de la matriz. Al final del bloque, la variable de matriz muere. Si se elimina el indicador de comentarios justo debajo del bloque, el programa no se compilará, se emitirá un mensaje de error. Esto se debe a que la matriz murió al final del bloque.
El siguiente programa ilustra algo similar, pero en una función, llamado fn ().
#incluirLa salida está quieta, Q. Si se elimina el indicador de comentarios justo debajo del bloque de funciones, el programa no se compilará y se emitirá un mensaje de error. Esto se debe a que la matriz murió al final del bloque de funciones (alcance). Además, tenga en cuenta que la asignación después de la declaración no está permitida en el alcance global.
Eliminar la matriz de puntero creada dinámicamente de la tienda gratuita
Dado que la asignación después de la declaración no está permitida en el alcance global, la matriz en la tienda gratuita se realizará en un alcance anidado al bloque de función principal de C ++ que se ilustra a continuación. El operador Delete [] se usa en el alcance anidado, para eliminar la matriz, de la siguiente manera:
#incluirLa salida es una 'Q', desde la primera declaración de cout. Tenga en cuenta que el nombre de la matriz, PTR, como argumento (parámetro) del operador Eliminar. La matriz, PTR para la tienda gratuita, se declara, se usa y se elimina con el operador "Eliminar [] ()" en el mismo alcance anidado. Si se deja pasar del alcance, sin "eliminar [] PTR", realmente no se eliminaría porque está en la tienda gratis. Dicha matriz debe eliminarse en su alcance, después de su uso con el operador Eliminar []. Eliminar con el operador Eliminar [] debe hacerse para la matriz dinámica para liberar la memoria (evite la fuga de memoria).
El siguiente programa ilustra algo similar, pero en el alcance de la función principal de C ++:
#incluirLa salida está quieta, Q como debería, con el índice. Todo el código de interés está directamente en la función principal de C ++. Aunque la función Main () es la función de capital de un programa C ++, sigue siendo una función del alcance o bloque de función de la función.
Inclusión del encabezado de la biblioteca
Como se señaló anteriormente, no se ha incluido ninguna biblioteca para el uso de los operadores nuevos o de eliminación. Sin embargo, los operadores New y Elimete están en la nueva biblioteca, que se incluye implícitamente. Los operadores nuevos y de eliminación son del alcance global. La biblioteca aún se puede incluir como en el siguiente programa para la matriz ordinaria:
#incluirEl programa funciona sin ningún problema. La biblioteca aún se puede incluir, como en el siguiente programa, para una matriz de puntero dinámico en la tienda gratuita:
#incluirEl programa funciona sin ningún problema. Nota: incluir el nuevo encabezado (biblioteca) no es obligatorio.
Conclusión
Para eliminar una matriz ordinaria, solo déjelo salir del alcance. Para eliminar una matriz de puntero dinámico de la tienda gratuita, use el operador, elimine [] ArrayName, en el mismo alcance. El operador de eliminación de matrices puede tener un segundo y/o tercer argumento. Sin embargo, eso es discusión por otro tiempo.