Dynamisch strukturen reservieren
-
Hallo Leute
Ich habe eine Struktur definiert und möchte diese dynamisch reservieren lassen, bzw anschließend übergeben.
Siehe Code
struct tage { char Beginn[6]; char Ende[6]; } struct vorlesungen { char Fach[128]; struct tage Wochentag[6]; } struct vorlesungen *pData; int main(void) { pData = (struct vorlesungen *)calloc(NOI, sizeof(struct vorlesungen)); Input(pData); free(pData); return 0; } void Input(struct vorlesungen pData) { strcpy( (pData + 1)->Fach , "Mathe"); strcpy( (pData + 1)->Wochentag[1].Beginn , "10:00"); }
Bekomme 18 Fehler!!
Bitte um Hilfe
tx MasterDitz
-
Einfach auf das hören, was dir der Compiler sagt.
Der kann C++ besser als du.#include <cstring> //für strcpy using namespace std; void Input(struct vorlesungen* pData); // Vorwärtsdeklaration nicht vergessen struct tage { char Beginn[6]; char Ende[6]; }; //Semikolon! struct vorlesungen { char Fach[128]; struct tage Wochentag[6]; }; //Dito struct vorlesungen *pData; int main(void) { pData = new(vorlesungen); //The C++ Way Input(pData); delete pData; return 0; } void Input(struct vorlesungen* pData) // wir übergeben Pointer auf struct { strcpy( (pData + 1)->Fach , "Mathe"); // wieso eigentlich (+ 1) ???? strcpy( (pData + 1)->Wochentag[1].Beginn , "10:00"); }
-
Wenn ich so drüber guck fällt mir sofort
void Input(struct vorlesungen* pData)
auf. Ich glaube es muss
void Input(vorlesungen* pData)
heißen. Dann aber die Vorwärtsdeklaration nach Der definition von Vorlesung...
-
struct muss man doch nur bei C explizit angeben bei Variablen und Typendeklaration.
-
Hä? Ich meine, das obere hast du geschrieben. Ich glaube das ist falsch...
-
Danke für die Rasche Hilfe
Betreffend +1:
Eigentlich will ich ein array von vorlesungen mit der Größe NOI und +1 sollte dann eigentlich +i heissen.lg
-
ness schrieb:
Hä? Ich meine, das obere hast du geschrieben.
*lol*
Ja, genau, ich habs nur mitkopiertIch glaube das ist falsch...
Naja, nicht falsch. Nur überflüssig.
Schaden tut´s aber auch nicht.
-
Wie sieht dass bei einem array aus?
pData = new(vorlesungeen[NOI]); pData[n]->Fach;
Das geht irgendwie nicht.
Bitte um Weiterhilfe
-
"Das geht irgendwie nicht" ist keine aussagekräftige Fehlerbeschreibung.
Vertraue der Macht deines Compilers, Luke. Er wird dich leiten.