Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Dynamische Toewijzing van Pointer naar Pointer | Dynamische Geheugentoewijzing
C++ Pointers en Referenties
Sectie 4. Hoofdstuk 4
single

single

bookDynamische Toewijzing van Pointer naar Pointer

Veeg om het menu te tonen

Een pointer naar pointer, aangeduid als dubbele pointer (**).

Dit is een pointer die het geheugenadres van een andere pointer bevat. Simpel gezegd is het een variabele waarvan de waarde het adres is van een andere pointer. Dit concept lijkt in eerste instantie complex, maar biedt een krachtig mechanisme voor het werken met geavanceerde dynamische geheugenallocatie.

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 een pointer naar een integer (int*);
  • ptr2: is een dubbele pointer naar een integer (int**).

Dynamische Allocatie van een Tweedimensionale Array

Als je een tweedimensionale array dynamisch wilt aanmaken (tijdens runtime), moet je een pointer naar een pointer gebruiken voor de rijen.

Vervolgens initialiseer je elke rij met een dynamische array (zoals in het vorige hoofdstuk)

Taak

Swipe to start coding

Stel je voor dat je werkt met een spreadsheettoepassing waarin je een tabel met getallen dynamisch moet aanmaken.

In deze opdracht werk je met dynamische tweedimensionale arrays en oefen je zowel met allocatie als deallocatie van geheugen.

  1. Maak binnen de functie createAndPrint2DArray dynamisch een 2D-array van gehele getallen aan met het opgegeven aantal rijen en kolommen.
  2. Vul de array met waarden berekend als row * columns + column, zodat elk element uniek is en afhankelijk van zijn positie.
  3. Print de array in tabelvorm naar de console.
  4. Geef al het dynamisch gealloceerde geheugen correct vrij met behulp van delete[] voor elke rij en vervolgens voor de array van pointers zelf.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 4
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt