Struct Array in Struct



  • hi.

    bin mal wieder am rumprogrammieren und wollte was testen.

    Ich hab mir zwei Strukturen erzeugt:

    //Struktur der angelegten User
    struct user_{
    	char *UserID;
    	char *Name;
    	char *Vorname;
    	char *Telefon;
    	char *Abteilung;
    };
    //Ein Standort kann gepflegt werden
    struct standort_{
    	char *Ort;
    	char *Strasse;
    	char *Gebaeude;
    	char *Raum;
    };
    

    Ich kann ein Objekt davon erzeugen und es befüllen.
    Jetzt wollte ich jedoch die Daten-Typen verbinden in einem gemeinsamen:

    //Die Details aus User und Standort
    struct details{
    	user_ User[];
    	standort_ Standort;
    } Details;
    

    Geht wunderbar! (wobei ich glaube das es so nicht richtig ist oder?)
    Ich will quasi ein Array der Struktur User in der Struktur Details haben.

    Ich kann folgendes machen:

    Details.User[0].Name = "Test0";
    Details.User[1].Name = "Test1";
    Details.User[2].Name = "Test2";
    Details.User[3].Name = "Test3";
    

    Gibt es mir auch ordentlich wieder aus!
    Nur kann ich nicht die Größe des Arrays "User" bestimmen!

    Ist mein vorgehen so richtig?
    Wie kann ich die Anzahl an Structuren des typs user rausbekommen? :<

    bin für jede konstruktive kritik dankbar!
    👍



  • Also ich würde anstelle eines Arrays einen Container-Typen nutzen. Probiere es mal mit einem vector oder einer list - das dürfte etwas angenehmer zu verwalten sein.

    Du kannst nämlich die Größe von beispielsweise Vektoren auslesen, bestimmen oder verändern.



  • Das sieht mir alles nach reinem C aus -> also eventuell falsches Forum.

    Zusätzlich zu meinen Vorposter noch:
    Wieso eine struct und keine class (man braucht mit Sicherheit die eine oder andere Funtkion)? Und char* ist 'obsolete' ;). Nimm besser String aus der VCL oder string aus dem Standard.



  • hmm...

    na da werd ich mir das mal mit dem container anschauen.

    Klar, klasse würde event. auch gehen 😃 wollt nur für so ein einfaches objekt keine eigene klasse machen, da noch keine weiteren funktionen dazu geplant sind 😉

    momentan überlege ich sowieso ob ich das objekt so noch nutzen sollte oder lieber gleich auf xml umsteige, da ich es am ende eh in einem xml-doc speicher....

    String... hmmm.
    da meckern immer alle funktionen rum das sie char * wollen XD
    ich werds mir aber merken!

    danke euch 👍



  • Hallo

    Klar, klasse würde event. auch gehen 😃 wollt nur für so ein einfaches objekt keine eigene klasse machen, da noch keine weiteren funktionen dazu geplant sind

    class und struct unterscheiden sich in C++ ausschließlich dadurch, das in class automatisch alle Member private und in struct publis sind.

    momentan überlege ich sowieso ob ich das objekt so noch nutzen sollte oder lieber gleich auf xml umsteige, da ich es am ende eh in einem xml-doc speicher....

    Die Frage ist aber, ob du zur Laufzeit deine Daten wirklich nur als XML-Datenbaum haben willst. Mag zwar beim Speichern gerechtfertigt sein, aber zum Bearbeiten halte ich konkrete Datentypen für sinnvoller.

    String... hmmm.
    da meckern immer alle funktionen rum das sie char * wollen XD

    Dann verwende eben passende Funktionen die String erlauben, oder übergib bei reinen Leseoperation über String::c_str() einen temporären char*

    bis bald
    akari


Anmelden zum Antworten