1. Arreglos de punteros Arreglos de punteros NO es lo mismo que puntero a arreglos. Son arreglos en los que cada uno de sus elementos es un puntero. Cada uno de los punteros puede apuntar a cualquier ubicación en memoria que pueda ser tratada como entero. int *px[5]; int x; px[0] = &x; *px[0] = 10; cout << x; //10 En este caso, px[0] lo estamos haciendo que apuntea la dirección donde se encuentra x. px x px[1] px[2] px[3] px[4] px[0] 10 Memoria
2. Ejemplo 1 Desarrollar un programa que contenga 5 cadenas de caracteres las cuales hay que ordenar de forma manual e imprimir en pantalla utilizando un arreglo de punteros.
3. Punteros a punteros Para especificar que una variable es un puntero a un puntero, la sintaxis utilizada es la siguiente: tipo **varpp; int a, *p, **p; a = 10; p = &a; pp = &p; a p pp 10 &a &p Memoria
4. Ejemplo 2 Desarrollar un programa que: Utilice 3 arreglos de enteros de distintos tamaños. Manejar estos arreglos como si estuvieran almacenados en direcciones consecutivas, es decir, a través de un arreglo de punteros. Controlar este arreglo de punteros usando un puntero a puntero. Imprimir (mostrar en pantalla) el contenido de los 3 arreglos de enteros, aplicando aritmética de punteros sobre el puntero a puntero.
5. Asignación dinámica de la memoria C++ cuenta con dos métodos para almacenar información en la memoria: Variables globales y locales De forma dinámica La asignación dinámica de memoria consiste en asignar la cantidad de memoria necesaria para almacenar un objeto durante la ejecución del programa, en vez de hacerlo en el momento de la compilación del mismo.
6. Cuando asignamos memoria de forma dinámica para un objeto de un tipo cualquiera, se devuelve un puntero a la zona de memoria asignada. Se debe declarar un puntero a un tipo de dato igual al tipo del objeto que se quiere asignar dinámicamente.
8. Ejemplo 3 Desarrollar un programa que genere un arreglo en forma dinámica con la instrucción new.
9. Ejemplo 4 Desarrollar un programa que: Solicite al usuario la cantidad de cadenas de caracteres que quiere ingresar. Las cadenas de caracteres (máximo 20 caracteres por cadena) se deben de crear dinámicamente y agregarse a un arreglo de punteros. El arreglo de punteros se debe de controlar por un puntero de punteros. Se deben de ordenar las cadenas e imprimir el resultado. Manejar excepciones para controlar la asignación dinámica de memoria.