etech Geschrieben 29. Mai 2005 Geschrieben 29. Mai 2005 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.
Klotzkopp Geschrieben 29. Mai 2005 Geschrieben 29. Mai 2005 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."
nic_power Geschrieben 29. Mai 2005 Geschrieben 29. Mai 2005 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
etech Geschrieben 29. Mai 2005 Autor Geschrieben 29. Mai 2005 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.
Klotzkopp Geschrieben 29. Mai 2005 Geschrieben 29. Mai 2005 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.
etech Geschrieben 29. Mai 2005 Autor Geschrieben 29. Mai 2005 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
Klotzkopp Geschrieben 29. Mai 2005 Geschrieben 29. Mai 2005 Deklarierst du struct mannschaft_t vielleicht mehrfach?
Aquano Geschrieben 30. Mai 2005 Geschrieben 30. Mai 2005 poste bitte mal den Prototypen der Funktion als auch die ersten 2 3 Zeilen der Funktion selbst.
etech Geschrieben 2. Juni 2005 Autor Geschrieben 2. Juni 2005 danke für die mühe, das problem hat sich erledigt...
Maulwurf_der_Schlaue Geschrieben 2. Juni 2005 Geschrieben 2. Juni 2005 darf man fragen wie du's jetzt gelöst hast? war jetzt eine doppeldekleration? falsch "gepointert"? ...
etech Geschrieben 6. Juni 2005 Autor Geschrieben 6. Juni 2005 mein professor hat ne älter version von dem programm akzeptiert, somit müsste ich mich mit dem problem nicht weiter rumquälen
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden