Sinn von einem Zeiger auf einen anderen?
-
Ich habe gehört, dass man einen Zeiger auf einen anderen Zeiger zeigen lassen kann. Jetzt habe ich mich aber gefragt, welchen Sinn das macht oder wofür man einen Zeiger auf einen Zeiger brauch...
Ich hoffe, dass ihr mir helfen und vielleicht auch ein paar Anwendungsbeispiele nennen könnt.so sieht ja der Code für einen Zeiger auf einen anderen aus:
#include <iostream> #include <iomanip> using namespace std; int main() { int *ptr1, **ptr2, ***ptr3, a = 5; ptr1 = &a; ptr2 = &ptr1; ptr3 = &ptr2; cout << setw(20) << ptr1 << setw(20) << &ptr1 << endl; cout << setw(20) << a << setw(20) << &a << endl; cout << setw(20) << ptr2 << setw(20) << &ptr2 << endl; cout << setw(20) << ptr3 << setw(20) << &ptr3 << endl; cin.get(); }
(In dem Beispiel habe ich noch einen Zeiger auf den Zeiger des Zeigers zeigen lassen ;))
leech
-
Zum Beispiel für ein multidimensionales Feld im Speicher. Im Falle eines zweidimensionalen Feldes forderst du dir ein Array von Zeigern an und weist jedem Zeiger ein Array von Objekten zu. Das Beispiel wird oft gefragt und steht auch in den FAQ wenn ich mich nicht irre.
-
Oder wenn mehrere Zeiger auf ein Objekt zeigen. Später sollen dann alle diese Zeiger auf ein bestimmtes anderes Objekt zeigen. Dann machst du einfach alle auf einen Zeiger und änderst nur den Zeiger, der direkt auf das Objekt zeigt.
-
Ausserdem auch gut für linked lists. So kann man call-by-reference implementieren wenn man einen zeiger übergibt, der von der funktion verändert werden _soll_
Siehe die implementation von list_remove()
Gruß,
Yannick
-
Najo, oder vielleicht ein einfacheres Beispiel:
Kommandozeilenparameter:
int main(int argc, char ** argv)
argv is hier ein Zeiger auf einen Zeiger.
Einfacher vielleicht auch * argv[]
oder auch argv[][]mit dem ersten Offset sprichst du den entsprechenden Parameter allgemein an,
mit dem zweiten dann die einzelnen Buchstaben.