Arrays in Strutcs
-
hi
ich habe bin in c gerade bei den structs und da wollte ich fragen, ob es möglich ist, in den structs gefüllte arrays zu deklarieren. int, chars usw.
Ich habe, wie bis her immer, so begonnen:struct meineErsteStruktur { char eins[2][30] = { "Eins", "Zwei", "Drei" }; char one[2][30] = { "One", "Two", "Three" }; int i[] = { 1, 2, 3 }; };
In der main wollte ich dann so darauf zugreifen:
int main() { struct meineErsteStruktur mES; int j; for(j=0;j<3;j++) { printf("%s", mES.eins[j]); printf("%s", mES.zahlen[j]); printf("%i", mES.i[j]); } }
irgendwas hab ich da falsch gemacht, weiß allerdings nicht was.
Ich hoffe ihr könnt mir helfen und bitte seid nicht so gemein, was meine fehler angeht. ich bin noch nicht so gutbedanke mich schonmal für die hoffentlich kommende hilfe
-
Du kannst keine Bedatung bei der Deklaration von struct meineErsteStruktur angeben. Das musst du bei der Definition einer Variable vom erstellten Typ machen.
struct meineErsteStruktur mES = { { "Eins", "Zwei", "Drei" }, { "One", "Two", "Three"}, { 1, 2, 3 } };
PS: Da sind noch eine Menge kleinerer Fehler drin, der gröbste ist die Dimension der struct-Member.
-
*oh äh uh rotanlauf*
das mir jetzt aber doch peinlich, dass ich das falsch gemacht habe...
ich würde das auch nicht als kleine fehler bezeichnen...
wenn mich dir das jetzt so angucke - ich bin entsetzt!Auf jeden fall danke für die hilfe. aufgrund der compiler meldung hab ich schon darauf geschlossen, dass es wo anders deklariert werden soll, allerdings wusste ich nicht wo, da ich ja, wie gesagt, neu bei structs bin.
vielen dank auf jeden fall. hat mir sehr geholfen.
-
Achja, hab den code (hoffentlich) verbessert:
#include <stdlib.h> struct meineErsteStruktur { char eins[3][30]; char one[3][30]; int i[3]; }; int main(void) { int j; struct meineErsteStruktur mES = { { "Eins", "Zwei", "Drei" }, { "One", "Two", "Three"}, { 1, 2, 3 } }; for(j=0;j<3;j++) { printf("%sn", mES.eins[j]); printf("%sn", mES.one[j]); printf("%in", mES.i[j]); printf("n"); } getchar(); return EXIT_SUCCESS; }
wenns daran noch ein paar mängel gibt, bitte darauf hinweisen!
ich hoffe ich habe jetzt alles, wenn es allerdings doch noch etwas falsches gibt (compilen geht einwandfrei) - raus damit!
will mich ja verbessern
-
- stdio.h nicht eingebunden
- Einrückung ist unter aller Sau
- Namensgebung der Varialen ist auch... suboptimal
- die '\n' wurden irgendwie zu 'n'
- anstelle der 3 für die Dimension wäre eine symbolische Konstante (z.B. als #define oder als enum) wesentlich besser, da man diese nur an einer Stelle anpassen muss (nennen wir das mal NUM), gilt natürlich auch für die 30
- warum nicht so?:struct meineErsteStruktur { char german[30]; char english[30]; int integer; }; // später... struct meineErsteStruktur mES[NUM] = // Init