Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Динамічне Виділення Пам'яті для Покажчика на Покажчик | Динамічне Виділення Пам'яті
Покажчики та Посилання в C++
Секція 4. Розділ 4
single

single

bookДинамічне Виділення Пам'яті для Покажчика на Покажчик

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

Вказівник на вказівник, позначається як подвійний вказівник (**).

Це вказівник, який зберігає адресу пам'яті іншого вказівника. Простіше кажучи, це змінна, значенням якої є адреса іншого вказівника. Ця концепція може здатися складною на перший погляд, але вона надає потужний механізм для роботи з розширеним динамічним виділенням пам'яті.

Синтаксис

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: вказівник на ціле число (int*);
  • ptr2: подвійний вказівник на ціле число (int**).

Динамічне виділення пам'яті для двовимірного масиву

Для створення двовимірного масиву динамічно (під час виконання програми) необхідно використовувати вказівник на вказівник для рядків.

Далі кожен рядок ініціалізується динамічним масивом (як у попередньому розділі)

Завдання

Swipe to start coding

Уявіть, що ви працюєте з табличним додатком, де потрібно динамічно створити таблицю чисел.

У цьому завданні ви будете працювати з динамічними двовимірними масивами та практикувати як виділення, так і звільнення пам'яті.

  1. Усередині функції createAndPrint2DArray динамічно виділіть двовимірний масив цілих чисел із заданою кількістю рядків і стовпців.
  2. Заповніть масив значеннями, обчисленими як row * columns + column, щоб кожен елемент був унікальним і залежав від своєї позиції.
  3. Виведіть масив у консоль у табличному форматі.
  4. Коректно звільніть усю динамічно виділену пам'ять за допомогою delete[] для кожного рядка, а потім для самого масиву вказівників.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

some-alt