ich soll ein liste erstellen für ein modul nur komme ich nicht weiter wo liegt der fehler ware nett wenn mir jemand helfen konnte
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct TStudListe
{
long matrikelnummer;
int credit_points;
struct TStudListe *next;
};
struct TStudListe *next = NULL;
struct TStudListe *anfang = NULL;
void anhaengen(long m, int c)
{
struct TStudListe *zeiger;
if(anfang == NULL) {
if((anfang =malloc(sizeof(struct TStudListe))) == NULL)
{
printf( "Kein Speicherplatz vorhanden für anfang\n");
return;
}
strcpy(anfang->matrikelnummer, m);
strcpy(anfang->credit_points, c);
anfang->next=NULL;
}
else {
zeiger=anfang;
while(zeiger->next != NULL)
zeiger=zeiger->next;
if((zeiger->next =
malloc(sizeof(struct TStudListe))) == NULL) {
printf(stderr,"Kein Speicherplatz für das letzte Element\n");
return;
}
zeiger=zeiger->next; /* zeiger auf neuen Speicherplatz */
strcpy(matrikelnummer, m);
strcpy(zeiger->credit_points, c);
zeiger->next=NULL;
}
}
/* Funktion zum Löschen einer Datei */
void loesche(long *wen) {
struct TStudListe *zeiger, *zeiger1;
if(anfang != NULL) {
if(strcmp(anfang->matrikelnummer,wen) == 0) {
zeiger=anfang->next;
free(anfang);
anfang=zeiger;
}
else {
zeiger=anfang;
while(zeiger->next != NULL) {
zeiger1=zeiger->next;
if(strcmp(zeiger1->name,wen) == 0) {
zeiger->next=zeiger1->next;
free(zeiger1);
break;
}
zeiger=zeiger1;
}
}
}
else
printf("Es sind keine Daten zum Loeschen vorhanden!!!\n");
}
/* Funktion zum Ausgeben der Dateien */
void ausgabe(void) {
struct TStudListe *zeiger = anfang;
printf("||=======================================================||\n");
printf("|%10cmatrikelnummer%10c |credit_points|");
printf("||=======================================================||\n");
while(zeiger != NULL) {
printf("|%12ld,| %02d|"\n", zeiger->matrikelnummer,zeiger->credit_points);
printf("|---------------------------------------------------------|\n");
zeiger=zeiger->next;
}
}
/* Funktion zur Eingabe der Daten */
void eingabe(void) {
int credit_points;
long matrikelnummer;
printf("matrikelnummer: ");
scanf("%ld",&matrikelnummer);
printf("credit_points");
scanf("%ld",&credit_points);
getchar();
anhaengen(n, c);
}
}
int main(void) {
int wahl;
long matrikelnummer;
do {
printf("\n1 : Eingabe\n");
printf("2 : Ausgabe\n");
printf("3 : Namen loeschen\n");
printf("9 : Ende\n");
printf("Ihre Wahl : ");
scanf("%d",&wahl);
getchar();
switch(wahl) {
case 1 : eingabe();
break;
case 2 : ausgabe();
break;
case 3 : printf("matrikelnummerzum Loeschen: ");
scanf("%ld",&matrikelnummer);
loesche(strtok(matrikelnummer, "\n"));
break;
case 9 : break;
default: printf("Falsche Eingabe!!!\n");
}
} while(wahl != 9);
return EXIT_SUCCESS;
}