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
Practice
Projects
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

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

Suggested prompts:

Can you explain how to declare and use a double pointer in code?

What are some practical examples where double pointers are useful?

Can you show how to dynamically allocate a 2D array using double pointers?

close

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