Problem mit struct + arrays
-
Hallöle...
ich versuche mich grad an meinem ersten C-Programm,
habe aber schohn seit Tagen ein problem.
Hier erstmal ein auszug aus dem SCode:[code (type="c++")]
#include <stdio.h>
#include <conio.h>
#include <conio.c>
#include <stdlib.h>
#include <string.h>
#define MAX_EING 500struct CDs {
char Titel[256];
char Bewertung[16];
char Anzahl[16];
char Bemerkung[256];
char Art[64];
};int nr=0; // währe static hier besser?!?
int main(int argc, char *argv[])
{struct CDs *f1[MAX_EING];
void Eingabe(struct CDs **);Eingabe(f1);
return 0;
}void Eingabe(struct CDs *f1[MAX_EING])
{do
{
clrscr();
printf(" Eingabe NR %i\n", nr);
printf(" Tittel:");
fflush(stdin);
gets(f1[nr]->Titel);printf(" Anzahl der CD's:");
fflush(stdin);
gets(f1[nr]->Anzahl);printf(" Notenbewertung:");
fflush(stdin);
gets(f1[nr]->Bewertung);printf(" Bemerkung:");
fflush(stdin);
gets(f1[nr]->Bemerkung);printf(" Art:");
fflush(stdin);
gets(f1[nr]->Art);printf("\n Bestaetigung: (eingabe %i)\n ------------\n\n Titel:\t\t\t%s\n Anzahl der CD's:\t%s\n Notenbewertung:\t%s\n Bemerkung:\t\t%s\n Genere:\t\t%s", nr, f1[nr]->Titel, f1[nr]->Anzahl, f1[nr]->Bewertung, f1[nr]->Bemerkung, f1[nr]->Art);
nr++;printf("\n\nEnter drücken um zu weier einzugeben");
fflush(stdin);
getch();
}while(nr != 10);
printf("\nEnter drücken um zu beenden");
fflush(stdin);
getch();
}[/cpp]
So...
Wenn man die 3te eingabe machen will (NR2) beendet er das Programm mit einer fehlermeldung a la
"Project 1 hat in MSVCRT.DLL einen Fehler verursacht. (usw))".Ich hoffe, ich konnte mein Problem verständlich erklären *g*
ansonsten..... Danke, und achja
ich Arbeite mit Win me und DEV-C++.[ Dieser Beitrag wurde am 11.01.2003 um 17:02 Uhr von braindoc editiert. ]
-
#include <stdio.h> #include <conio.c> #define MAX_EING 500 struct CDs { char Titel[256]; char Bewertung[16]; char Anzahl[16]; char Bemerkung[256]; char Art[64]; }; void Eingabe(struct CDs **); int nr; int main() { struct CDs *f1[MAX_EING]; Eingabe(f1); return 0; } void Eingabe(struct CDs *f1[]) { do { clrscr(); f1[nr]=(struct CDs*)malloc(sizeof(struct CDs)); printf(" Eingabe NR %i\n", nr+1); printf(" Titel: "); gets(f1[nr]->Titel); printf(" Anzahl der CD's: "); gets(f1[nr]->Anzahl); printf(" Notenbewertung: "); gets(f1[nr]->Bewertung); printf(" Bemerkung: "); gets(f1[nr]->Bemerkung); printf(" Art: "); gets(f1[nr]->Art); printf("\n Bestaetigung: (eingabe %i)\n ------------\n\n Titel:\t\t\t%s\n Anzahl der CD's:\t%s\n Notenbewertung:\t%s\n Bemerkung:\t\t%s\n Genre:\t\t%s", nr, f1[nr]->Titel, f1[nr]->Anzahl, f1[nr]->Bewertung, f1[nr]->Bemerkung, f1[nr]->Art); ++nr; printf("\n\n Enter druecken um weiter einzugeben"); getch(); }while(nr < 10); printf("\nEnter druecken um zu beenden"); getch(); }
Man sollte noch die Speicherreserwierung überwachen und am Ende ihn freigeben.
DEV-C++ hat Probleme es als *.c zu kompilieren, *.cpp klappt dagegen.
MfG Lem