single
Asignación Dinámica de Punteros a Punteros
Desliza para mostrar el menú
Un puntero a puntero, denotado como doble puntero (**).
Este es un puntero que almacena la dirección de memoria de otro puntero. En términos simples, es una variable cuyo valor es la dirección de otro puntero. Este concepto puede parecer complejo al principio, pero proporciona un mecanismo potente para gestionar la asignación dinámica de memoria avanzada.
Sintaxis
main.cpp
12345678910111213#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Address stored in ptr2 (address of ptr1): " << ptr2 << std::endl; std::cout << "Address stored in ptr1 (address of x): " << *ptr2 << std::endl; std::cout << "Value of x: " << **ptr2 << std::endl; }
- ptr1: es un puntero a un entero (
int*); - ptr2: es un puntero doble a un entero (
int**).
Asignación dinámica de un arreglo bidimensional
Si se desea crear un arreglo bidimensional de forma dinámica (en tiempo de ejecución), se debe utilizar un puntero a puntero para las filas.
Luego, inicializar cada fila con un arreglo dinámico (como en el capítulo anterior)
Desliza para comenzar a programar
Imagina que estás trabajando con una aplicación de hoja de cálculo donde necesitas crear una tabla de números de forma dinámica.
En esta tarea, trabajarás con arreglos bidimensionales dinámicos y practicarás tanto la asignación como la liberación de memoria.
- Dentro de la función
createAndPrint2DArray, asigna dinámicamente un arreglo 2D de enteros con el número dado de filas y columnas. - Llena el arreglo con valores calculados como
row * columns + column, de modo que cada elemento sea único y dependa de su posición. - Imprime el arreglo en la consola en formato tabular.
- Libera correctamente toda la memoria asignada dinámicamente usando
delete[]para cada fila y luego para el propio arreglo de punteros.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla