Array bestehend aus Zeigern
-
funktioniert dynamisch trotzdem verstehe ich net was du da genau gemacht hast!
stack::stack(int pgroesse) { groesse = pgroesse; stackinhalt = new Person*[groesse]; top = 0; } wobei class stack { private: Person **stackinhalt; int top; int groesse; public: stack(int pgroesse); void push(char *pnachname, char *pvorname, char*padresse, char *port, int pplz, int ppnr); void pop(); void set_groesse(int pgroesse); void print_stack(); ~stack(); };Ich verstehe net genau was da passiert!Genauergesagt diese 2 Sternchen bei stackinhalt wieso doppelt?
-
hmm ja was passiert denn hier genau?Wieso Zeiger auf Ziegr?Kann dies mal jemand erläutern?
-
Type** bedeutet Zeiger auf Zeiger auf Objekt vom Typ Type. Was gibt es da zu verstehen? (analog: Type*** - braucht man aber fast nie)
-
soorry aber ich bin net so unbedigt der c++ freak und mir ist klar, dass es zeiger auf zeiger heißt aber irgendwie kannst mir mal erklären wieso ich das mit dem doppelzeiger in diesem fall machen muss!
-
Das erste *, weil du new[] verwendest, obwohl die Standardbibliothek so viele bessere Container zur Verfügung stellt. Dass dynamische Arrays als * gehandhabt werden, finde ich reichlich dämlich (wie new[]/delete[] allgemein), aber du hast dich dafür entschieden

Das zweite, weil du gesagt hast, dass der Stack nur Zeiger auf die Elemente speichern soll.
-
ok und wieso kommt dann ein zeiger vor groesse?
und wie spreche ich dann die teile an, dennn da mit kommt immer ein meory violation fehler!
stackinhalt[i]->get_nachname()wobei get_nachname nur ein return nachname ist!

-
Uninitialisierte Pointer?
-
Hallo,
ich wuerd die 'push'-Funktion anders implementieren. Warum uebergibst du nicht
einfach ein 'Person *' an 'push':void push(Person *);Ist m. E. nach einleuchtender, denn schliesslich willst du ja auch 'Personen'
auf deinen Stack legen.Und 'pop()' wuerde ich eher als:
Person *pop();implementieren, da man mit pop() das oberste Element eines Stacks zurueck-
geliefert bekommt (und dieses dann vom Stack entfernt wird).mfg
v R
-
operator void schrieb:
..., obwohl die Standardbibliothek so viele bessere Container zur Verfügung stellt.
Zum Beispiel std::stack?

-
davie schrieb:
operator void schrieb:
..., obwohl die Standardbibliothek so viele bessere Container zur Verfügung stellt.
Zum Beispiel std::stack?

Nein, das wär jetzt zu einfach.
