Kursinhalt
C++ Zeiger und Referenzen
C++ Zeiger und Referenzen
Zeiger-zu-Zeiger Dynamische Zuweisung
Ein Zeiger auf Zeiger, bezeichnet als Doppelzeiger (**
).
Dies ist ein Zeiger der die Speicheradresse eines anderen Zeigers enthält. Einfach ausgedrückt, ist es eine Variable, deren Wert die Adresse eines anderen Zeigers ist. Dieses Konzept mag zunächst komplex klingen, bietet jedoch einen leistungsstarken Mechanismus zum Umgang mit fortgeschrittener dynamischer Speicherzuweisung.
Syntax
main
#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Location of ptr2: " << ptr2 << std::endl; std::cout << "Location of ptr1: " << *ptr2 << std::endl; std::cout << "Value of x: " << **ptr2 << std::endl; }
- ptr1: ist ein Zeiger auf einen Integer (
int*
); - ptr2: ist ein doppelter Zeiger auf einen Integer (
int**
).
Dynamische Speicherzuweisung für ein zweidimensionales Array
Wenn Sie ein zweidimensionales Array dynamisch (zur Laufzeit) erstellen möchten, müssen Sie einen Zeiger auf einen Zeiger für die Zeilen verwenden.
Und dann jede Zeile mit einem dynamischen Array initialisieren (wie im vorherigen Kapitel)
Swipe to start coding
- Weisen Sie ein zweidimensionales Array dynamisch zu.
- Weisen Sie die Arrays als Elemente dynamisch zu.
- Geben Sie den gesamten zugewiesenen Speicher wieder frei.
Lösung
solution
Danke für Ihr Feedback!
Zeiger-zu-Zeiger Dynamische Zuweisung
Ein Zeiger auf Zeiger, bezeichnet als Doppelzeiger (**
).
Dies ist ein Zeiger der die Speicheradresse eines anderen Zeigers enthält. Einfach ausgedrückt, ist es eine Variable, deren Wert die Adresse eines anderen Zeigers ist. Dieses Konzept mag zunächst komplex klingen, bietet jedoch einen leistungsstarken Mechanismus zum Umgang mit fortgeschrittener dynamischer Speicherzuweisung.
Syntax
main
#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Location of ptr2: " << ptr2 << std::endl; std::cout << "Location of ptr1: " << *ptr2 << std::endl; std::cout << "Value of x: " << **ptr2 << std::endl; }
- ptr1: ist ein Zeiger auf einen Integer (
int*
); - ptr2: ist ein doppelter Zeiger auf einen Integer (
int**
).
Dynamische Speicherzuweisung für ein zweidimensionales Array
Wenn Sie ein zweidimensionales Array dynamisch (zur Laufzeit) erstellen möchten, müssen Sie einen Zeiger auf einen Zeiger für die Zeilen verwenden.
Und dann jede Zeile mit einem dynamischen Array initialisieren (wie im vorherigen Kapitel)
Swipe to start coding
- Weisen Sie ein zweidimensionales Array dynamisch zu.
- Weisen Sie die Arrays als Elemente dynamisch zu.
- Geben Sie den gesamten zugewiesenen Speicher wieder frei.
Lösung
solution
Danke für Ihr Feedback!