Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Asignación Dinámica de Punteros a Punteros | Asignación Dinámica de Memoria
Punteros y Referencias en C++
Sección 4. Capítulo 4
single

single

bookAsignació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

main.cpp

copy
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)

Tarea

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.

  1. Dentro de la función createAndPrint2DArray, asigna dinámicamente un arreglo 2D de enteros con el número dado de filas y columnas.
  2. Llena el arreglo con valores calculados como row * columns + column, de modo que cada elemento sea único y dependa de su posición.
  3. Imprime el arreglo en la consola en formato tabular.
  4. Libera correctamente toda la memoria asignada dinámicamente usando delete[] para cada fila y luego para el propio arreglo de punteros.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt