Dynamische Arrays Zugriff auf objekte...



  • Hallo,

    Also ich lese aus einer datei informationen über Personen aus, diese möchte ich dann in einem Array ablegen. Die grösse ist immer die Anzahl Personen.

    Person **pp_Personen; // deklaration pointer auf pointer
    pp_Person = (Person **) malloc(1*(Person *)); // speicher reservieren
    while(...){
    if(iAnzahl > 1){
     pp_Person = (Person **) realloc(iAnzahl*(Person*));
    }
    pp_Person[iAnzahl] = new Person(Name, ...);  //  insanz wird angelegt
    
    }
    

    so sieht mein code in etwa aus.... nun meine frage ist: wie kann ich auf das einzelne objekt wieder zugreiffen?

    **pp_Person->doSomething(); //--> illegal indirection
    

    ich habs noch mit:

    Person *Buffer;
    Buffer = pp_Person[iAnzahl];
    Buffer->doSomething();
    

    versucht.... nur musste ich da feststellen, dass die speicheradresse nicht stimmt. deshalb denke ich mir, dass der fehler schon bei der instanziierung erstellen...

    (dass pp_Person ein static attribut sollte ja keinen einfluss haben)

    vielen dank für eure hilfe... (wenn mans nicht versteht werde ich den vollständigen code posten...)



  • Du schreibst

    pp_Person = (Person **) malloc(1*(Person *));
    

    das müsste

    pp_Person = (Person **) malloc(1*sizeof(Person *));
    

    heissen. (ebenso bei realloc ).
    zugreifen kannst du mit

    pp_Person[1]->do_some_thing();
    

    Kurt


Log in to reply