Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- struct STR {
- int id;
- int numPointers;
- STR** ptrListe;
- };
- int main() {
- //Unser 'Parent'-Objekt
- STR str;
- // Wir wollen 3 Kinder anlegen
- str.numPointers = 3;
- // Pointerliste anlegen
- str.ptrListe = new STR*[3];
- //Wir weisen jedem Kind eine ID zu
- for(int i=0; i<str.numPointers; ++i) {
- str.ptrListe[i] = new STR{i, 0, nullptr};
- }
- //Ausgeben jeder Kinder-ID über den Random-Access-Operator []
- //str.ptrListe[0] - Gibt den ersten Pointer der Liste zurück
- for(int i=0; i<str.numPointers; ++i) {
- std::cout << str.ptrListe[i]->id << std::endl;
- }
- //Ausgeben jeder Kinder-ID über Pointer-Arithmetik
- for(int i=0; i<str.numPointers; ++i) {
- //WICHTIG: Man darf nicht str.ptrListe+sizeof(STR*)+i machen!
- // "ptr = ptr+1" verschiebt den Pointer um Element und nicht nur um 1 Byte!
- STR* childStr = *(str.ptrListe+i); //Ist das gleiche wie str.ptrListe[i]
- std::cout << childStr->id << std::endl;
- }
- //Jedes Kind freigeben
- for(int i=0; i<str.numPointers; ++i) {
- delete str.ptrListe[i];
- }
- //Liste freigeben
- delete[] str.ptrListe;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement