Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Pointer to Pointer Dynamic Allocation | Dynamic Memory Allocation
Quizzes & Challenges
Quizzes
Challenges
/
C++ Pointers and References

bookPointer to Pointer Dynamic Allocation

A pointer to pointer, denoted as double pointer (**).

This is a pointer that holds the memory address of another pointer. In simple words, it is a variable whose value is the address of another pointer. This concept might sound complex at first, but it provides a powerful mechanism for dealing with advanced dynamic memory allocation.

Syntax

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: is a pointer to an integer (int*);
  • ptr2: is a double pointer to an integer (int**).

Dynamic Allocation of a Two-Dimensional Array

If you want to create a two-dimensional array dynamically (at runtime) you have to use a pointer to a pointer for the rows.

And then initialize each row with dynamic array (like in previous chapter)

Завдання

Swipe to start coding

Imagine you are working with a spreadsheet application where you need to create a table of numbers dynamically.

In this task, you will work with dynamic two-dimensional arrays and practice both allocation and deallocation of memory.

  1. Inside the function createAndPrint2DArray, dynamically allocate a 2D array of integers with the given number of rows and columns.
  2. Fill the array with values calculated as row * columns + column, so each element is unique and depends on its position.
  3. Print the array to the console in a tabular format.
  4. Properly release all dynamically allocated memory using delete[] for each row and then for the array of pointers itself.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

Awesome!

Completion rate improved to 5.88

bookPointer to Pointer Dynamic Allocation

Свайпніть щоб показати меню

A pointer to pointer, denoted as double pointer (**).

This is a pointer that holds the memory address of another pointer. In simple words, it is a variable whose value is the address of another pointer. This concept might sound complex at first, but it provides a powerful mechanism for dealing with advanced dynamic memory allocation.

Syntax

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: is a pointer to an integer (int*);
  • ptr2: is a double pointer to an integer (int**).

Dynamic Allocation of a Two-Dimensional Array

If you want to create a two-dimensional array dynamically (at runtime) you have to use a pointer to a pointer for the rows.

And then initialize each row with dynamic array (like in previous chapter)

Завдання

Swipe to start coding

Imagine you are working with a spreadsheet application where you need to create a table of numbers dynamically.

In this task, you will work with dynamic two-dimensional arrays and practice both allocation and deallocation of memory.

  1. Inside the function createAndPrint2DArray, dynamically allocate a 2D array of integers with the given number of rows and columns.
  2. Fill the array with values calculated as row * columns + column, so each element is unique and depends on its position.
  3. Print the array to the console in a tabular format.
  4. Properly release all dynamically allocated memory using delete[] for each row and then for the array of pointers itself.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
single

single

some-alt