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 mitpp_Person[1]->do_some_thing();
Kurt