Veröffentlicht 29. Mai 200520 j hallo, ich habe da ein problem mit einem c programm an dem ich gerade arbeite. und zwar muss ich dort zwei strukturen die global waren nun an alle funktionen übergeben da ich sie nun lokal nutzen muss. doch bei der parameterübergabe habe ich probleme. es handelt sich hierbei um diese beiden strukturen: struct mannschaft_t{ char name[MAX]; int anzahl; }*teilnehmer; struct paarung_t{ char heim[MAX]; char gast[MAX]; int tabelle; int ergebnis_h; int ergebnis_g; int punkte_h; int punkte_g; int gesamt_pkt; int gesamt_tore; }liste[MAX][MAX]; ich habe mir dann überlegt die strukturen folgendermaßen zu übergeben aber das funktioniert irgendwie nicht. struct mannschaft_t *teilnehmer und struct paarung_t liste[][] wäre schon wenn mir jemand helfen könnte, undmir sagt wo der fehler liegt.
29. Mai 200520 j wäre schon wenn mir jemand helfen könnte, undmir sagt wo der fehler liegt.Wäre schön, wenn du eine bessere Fehlerbeschreibung liefern könntest als "das funktioniert irgendwie nicht."
29. Mai 200520 j Hallo, Strukturen können in C nicht direkt übergeben werden, Du musst einen Pointer auf die Struktur verwenden. Aber eine genauere Fehlerbeschreibung mit dem entsprechenden Code wäre sehr hilfreich. Nic
29. Mai 200520 j hmm ich weiss garnicht wo ich anfangen soll. das problem ist eben das ich das prog schon komplett geschrieben hab und jetzt nur noch die strukturen lokal deklarieren soll. nach meinen umbaumaßnahmen habe ich 102 errors, deswegen kann ich keine genaue fehlerbeschreibung machen. ich liste aber die häufigsten fehler einmal auf: ich habe z.B. in einer funkton eine struktur aus meinem ersten beitrag übergeben. int mannschaft_eingeben(int anzahl_mannschaften, struct mannschaft_t *teilnehmer) in der funktion selber tauchen dann folgende fehler auf: scanf("%s",&teilnehmer.name); error C2036: 'struct mannschaft_t *' : unknown size sowie error C2037: left of 'name' specifies undefined struct/union 'mannschaft_t' oder z.B. hier: strcpy(liste[t][p].heim,teilnehmer[(t+p)%(anz_m-1)].name); error C2036: 'struct mannschaft_t *' : unknown size und error C2198: 'strcpy' : too few actual parameters diese fehler wiederholen sich bei jedem abschnitt wo die struktur bearbeitet oder aufgerufen wird. ich weiss jetzt nicht ob ich die struktur der funktion richtig übergeben habe oder ob der grund für die fehlermeldung woanders liegt. bin für jeden tip dankbar und gebe gerne weiter informationen wenn noch was unklar ist. ich geh nämlich schon auf dem zahnfleisch weil ich den kram morgen schon abgeben muss.
29. Mai 200520 j nach meinen umbaumaßnahmen habe ich 102 errors, deswegen kann ich keine genaue fehlerbeschreibung machen. ich liste aber die häufigsten fehler einmal auf:Es ist meist effektiver, wenn man die Fehlermeldungen der Reihe nach bearbeitet. Der Compiler kann nach einem Fehler schon mal "aus dem Tritt kommen". Daher ist auch die Anzahl der Fehler wenig aussagekräftig. Interessant ist zuerst immer nur der erste gemeldete Fehler. Also lass den mal sehen.
29. Mai 200520 j gut, also die erste fehlermeldung ist schon bei der ersten funktion die ich aufrufe: mannschaft_eingeben(anzahl_mannschaften, teilnehmer); anzahl_mannschaften ist ein normaler int wert der ohne probleme übergeben wird. teilnehmer soll eigentlich ein pointer auf meine struktur sein: struct mannschaft_t{ char name[MAX]; int anzahl; }*teilnehmer; dabei spuckt er schon folgenden fehler aus: warning C4133: 'function' : incompatible types - from 'struct mannschaft_t *' to 'struct mannschaft_t *' diesen fehler bekomme ich bei jedem funktionsaufruf bei dem ich teilnehmer übergebe. wenn ich jetzt diese struktur meiner funktion übergeben will, muss ich da jetzt erst einen pointer auf die struktur deklarieren und den dann der fkt. übergeben? ist *teilnehmer nicht schon ein pointer auf die struktur? schonmal danke für die hilfe
30. Mai 200520 j poste bitte mal den Prototypen der Funktion als auch die ersten 2 3 Zeilen der Funktion selbst.
2. Juni 200520 j darf man fragen wie du's jetzt gelöst hast? war jetzt eine doppeldekleration? falsch "gepointert"? ...
6. Juni 200520 j mein professor hat ne älter version von dem programm akzeptiert, somit müsste ich mich mit dem problem nicht weiter rumquälen
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.