Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

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

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.

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.

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

poste bitte mal den Prototypen der Funktion als auch die ersten 2 3 Zeilen der Funktion selbst.

danke für die mühe, das problem hat sich erledigt...

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.