single
Dynamische Allokation von Zeigern auf Zeiger
Swipe um das Menü anzuzeigen
Ein Pointer auf einen Pointer, bezeichnet als Doppelzeiger (**).
Dies ist ein Zeiger, der die Speicheradresse eines anderen Zeigers speichert. Einfach ausgedrückt ist es eine Variable, deren Wert die Adresse eines anderen Zeigers ist. Dieses Konzept mag zunächst komplex erscheinen, bietet jedoch eine leistungsstarke Möglichkeit für fortgeschrittene dynamische Speicherverwaltung.
Syntax
main.cpp
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: ist ein Zeiger auf einen Integer (
int*); - ptr2: ist ein doppelter Zeiger auf einen Integer (
int**).
Dynamische Allokation eines zweidimensionalen Arrays
Wenn ein zweidimensionales Array zur Laufzeit dynamisch erstellt werden soll, muss für die Zeilen ein Zeiger auf einen Zeiger verwendet werden.
Anschließend wird jede Zeile mit einem dynamischen Array initialisiert (wie im vorherigen Kapitel).
Wischen, um mit dem Codieren zu beginnen
Stellen Sie sich vor, Sie arbeiten mit einer Tabellenkalkulationsanwendung, in der Sie eine Tabelle mit Zahlen dynamisch erstellen müssen.
In dieser Aufgabe arbeiten Sie mit dynamischen zweidimensionalen Arrays und üben sowohl die Allokation als auch die Freigabe von Speicher.
- Innerhalb der Funktion
createAndPrint2DArraysoll ein zweidimensionales Array von Ganzzahlen mit der angegebenen Anzahl von Zeilen und Spalten dynamisch alloziert werden. - Füllen Sie das Array mit Werten, die als
row * columns + columnberechnet werden, sodass jedes Element eindeutig ist und von seiner Position abhängt. - Geben Sie das Array in tabellarischer Form auf der Konsole aus.
- Geben Sie anschließend sämtlichen dynamisch allozierten Speicher korrekt frei, indem Sie
delete[]für jede Zeile und für das Array der Zeiger selbst verwenden.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen