lernhilfe
-
Kann mir jemand einen Tipp geben wie ich souveräner im Umgang mit Zeigern auf Zeiger werde?
Also ganz normale Zeiger stellen kein Problem dar aber sobal ich etwas wie
node** root
oder ähnliches sehe, versteh ich die welt nicht mehr
kann einer ein 2 beispiele schreiben und erklären wozu die dinger gut sind?
-
In den meisten Fällen ist sowas in C++ überflüssig. In C stolpert man hin und wieder über sowas, aber in C++ taucht das wirklich nur höchst selten auf, wenn überhaupt.
-
Such mal danach. Du bist nicht der einzige mit dem Problem.

http://www.c-plusplus.net/forum/viewtopic-var-t-is-39497.html
oder auch:
oder:
Da findet sich Haufenweise..

Du darst einfach nicht denken, dass mehrdimensionale Zeiger irgendetwas anderes sind, als normale Zeiger. Anstatt auf einen Typ vom Typ int zeigt der Zeiger dann halt auf einen Typ vom Typ "Zeiger auf int".

Oder als Typedef:
typedef int* p_int; int* pi; p_int* ppi; // ist dasselebe, wie int** ppi
-
Wenn man selbst Listen und Bäume baut, kann das schon mal praktisch sein, weil man sich so Sonderfälle sparen kann. In C++ würde man das eventuell mit einer Referenz auf einen Zeiger machen.
Folgendes Beispiel habe ich gerade mal zusammengehackt. Angaben ohne Gewähr:
struct knoten { knoten* links; knoten* rechts; int element; explicit knoten(int z) : links(0), rechts(0), element(z) {} ~knoten() { delete links; delete rechts; } }; // wurzel ist eine Referenz auf einen Zeiger, // der ein Null-Zeiger sein kann, wenn's das // Ding noch nicht gibt void hinzufuegen(knoten * & wurzel, int elem) { if (!wurzel) { wurzel = new knoten(elem); } else { if (elem == wurzel->element) return; hinzufuegen( (elem < wurzel->element) ? wurzel->links : wurzel->rechts, elem); } }Natürlich sollte man die Standard-Container vorziehen, soweit es geht.
Gruß,
SP