Hallo Leute habe ein Programm geschrieben mit ner Verketteten Liste jedenfalls wollte ich meine funktion del_item prüfen aber jedesmal gschmeisst er mich raus und beim debugger gibt er mir nichts an bitte hilfe
achso wenn die Liste Leer ist dann gibt er mir **** s. u.
#include <stdio.h> // Bibliothek fuer printf, scanf, ...
#include <conio.h> // Bibliothek fuer getch, gets, ...
#include <string.h> // strcmp ist enthalten
#include <stdlib.h> // malloc ist dieser Bibliothek enthalten
//struct
struct eintrag{
char wort[20];
struct eintrag *next;
} ;
typedef struct eintrag element ; // vor definiert damit kann ich nur Element schreiben
struct eintrag *liste ; // kann man auch so schreiben element *liste
void anzeigen (element* ptr){
if (ptr->next != NULL) {
printf ("%s\n",ptr->wort);
anzeigen (ptr->next);
}
return;
}
void erstellen (element* ptr){
printf ("Bitte geben Sie das Wort ein ('ENDE' fuer Ende der Liste): ");
scanf("%s", ptr->wort);
if (strcmp(ptr->wort,"ENDE")==0) ptr->next=NULL;
else {
ptr->next = (element*) malloc(sizeof(element));
erstellen (ptr->next);
}
return;
}
element *delpointer;
int del_item(element* ptr,char* item){
delpointer=ptr->next; ***** hier ein DEbug keine Ahnung wieso
if(ptr->next==NULL)
{
return 0;
}
if(strcmp(ptr->wort,item)==0)
{
liste=ptr->next;
free(ptr);
return 1;
}
else if(strcmp(delpointer->wort,item)==0)
{
ptr->next=delpointer->next;
free(delpointer);
return 1;
}
else
{
del_item(ptr->next,item);
}
}
void main(){
int eingabe;
for(eingabe; eingabe !=4;){
//menu
printf("\nBitte waehlen Sie:\n1 - Liste erstellen\n2 - Element hinzufuegen\n");
printf("3 - Element loeschen\n4 - Programm beenden\nAuswahl: ");
scanf("%i",&eingabe);
if(eingabe == 1){
liste = (element*)malloc(sizeof(element));
erstellen(liste);
}
if(eingabe==2){
}
if(eingabe==3) {
char* item;
printf("\nBitte geben Sie das zu löschende Element ein: ");
scanf("%s",&item);
del_item(liste,item);
}
if(eingabe==4) {
}
}
bitte um Hilfe bin am verzweifeln!!!!!!
Danke
}