Ich kann diese Funktion nicht richtig ausführen. Es stürzt ab, wenn ich versuche, einen bestimmten Datensatz zu löschen. Was muss ich ändern, damit es wie erwartet funktioniert?Löschen eines einzelnen Schülers aus der verknüpften Liste
//Delete Students Function
void delete_single_Student(Student *pfirst, int id)
{
int search_id;
bool found = false;
Student *pcurrent = pfirst;
Student *temp = NULL;
printf("Please enter the student ID of the student that will be deleted.\n");
scanf("%d", &search_id);
while (search_id < 999 || search_id > 9999)
{
printf("\nPlease enter a valid id.\n");
scanf("%d", &search_id);
}
do
{
temp = pcurrent;
pcurrent = pcurrent->next;
if (pfirst->id == search_id)
{
found == true;
printf("**********************\n\n");
printf(" Student %d Deleted \n\n", search_id);
printf("*********************\n\n");
pfirst = pfirst->next;
free(temp);
break;
}
} while (found != true);
}
was machst du mit 'temp'? Was passiert mit der Flagge? – t0mm13b
Wofür ist 'id'? – melpomene
Verwenden Sie 'scanf' nicht für Benutzereingaben. – melpomene