Betrachten Sie den Code:Struct Variable und struct Mitglied in Funktionsdefinition
#define STRINGMAX 50
struct GIFTS {
char whofor[STRINGMAX];
char city[STRINGMAX];
float weight;
struct DIMENSIONS {
float width;
float length;
float height;
} dim;
} gifts[STRINGMAX];
Und Funktionsdefinition:
void takeString(char * structvar, char structarr[], int arrpos) {
while (scanf("%[^\n]%*c]", structarr[arrpos].structvar) != EOF) {
scanf("%[^\n]%*c]", structarr[arrpos].structvar);
}
}
Es gibt mir eine Fehlermeldung:
request for member ‘structvar’ in something not a structure or union
Gibt es eine Möglichkeit in diesem Fall ein Strukturelement übergeben? Ich habe hier ähnliche Themen gesehen, aber ich konnte diese Ideen nicht in meinen Code einbringen (ich bin ein kompletter C Anfänger). Ich würde jede Hilfe, besonders ein klares Beispiel im Code schätzen.
Btw. Ich weiß, dass ich scanf nicht benutzen sollte, aber es ist nur zum Beispiel. Ich werde etwas anderes tun, wenn ich weiß, wie man das Strukturelement im Funktionsparameter übergeben kann.
'structarr' ist vom Typ' char * ', hast du meine' structvar'? –
Nicht auf Ihr Problem bezogen, aber Ihre Loop-Leseeingabe erfordert, dass der Benutzer die gleichen Daten * zweimal * eingibt. –
Da keiner der Funktionsparameter eine Struktur ist, macht diese Frage keinen Sinn. Bitte bearbeiten Sie es, damit klar wird, was Sie meinen. – Lundin