wieso "...hat ein Problem festgestellt und muss beendet werden"?
-
#include <iostream> #include <cstring> #include <stdlib.h> using namespace std; struct schlange{ int kundennummer; schlange *next; }; schlange *first=NULL; int maxlenght=0; int anzkunden=0; int anzleer=0; int laenge=0; int kdnummer=0; void neuerkunde(int *maxlenghtptr){ schlange *kunde=new schlange; kdnummer++; kunde->kundennummer=kdnummer; kunde->next=NULL; if(first==NULL){ first=kunde; } else{ schlange *tmp=first; while(tmp->next!=NULL){ tmp=tmp->next; } tmp->next=kunde; } laenge++; if(laenge > *maxlenghtptr){ *maxlenghtptr=laenge; } } void kundeweg(int *anzkundenptr, int *anzleerptr){ schlange *tmp=first; first=first->next; //hier ist der fehler, aber was?? delete tmp; (*anzkundenptr)++; if(*anzkundenptr==0){ (*anzleerptr)++; } } int main(){ srand(1000); for(int i=0; i<200; i++){ if(rand()%2){ neuerkunde(&maxlenght); } if(rand()%2){ kundeweg(&anzkunden,&anzleer); } } cout << "Anzahl Kunden bedient: " << anzkunden << endl; cout << "Die Schlange war " << anzleer << " mal leer und max. " << maxlenght << " Elemente lang." << endl; system("PAUSE"); return 0; }das Programm stürzt so ab, und wenn ich zeile 41 auskommentiere läuft es... dort muss also etwas unerlaubtes geschehen, aber was?? kann mir jemand helfen was ich falsch mach?
-
first ist null
du versuchst manchmal mehr elemente zu loeschen als in der liste drinnen sind... das kann ja nicht gutgehen...
-
danke dir, jetzt funktionierts

-
Bei solchen Fehlern kann der Debugger eine grosse Hilfe sein...
