<分区>
struct Node {
char gender;
int turns_in_bathroom;
struct Node *next;
};
struct Queue {
struct Node *front, *back;
};
int QueueDeleteNext(Queue *myQueue, char value) {
Node *current_node, *previous_node;
previous_node = NULL;
int found = 0;
for (current_node = myQueue->front; current_node != NULL;
previous_node = current_node, current_node = current_node->next) {
if (current_node->gender == value) {
if (previous_node == NULL) {
myQueue->front = myQueue->back = NULL;
}
else {
previous_node->next = current_node->next;
if(previous_node->next == NULL){
myQueue->back = previous_node;
}
}
free(current_node);
found = 1;
}
}
return found;
}
我在线路上遇到段错误
if (current_node->gender == value) {
我这辈子都弄不明白为什么。这里发生了什么? 更不用说尽管我的调试器出现故障,代码仍会一直运行。不过,我认为有一些错误可能与此有关,我想确保我已经涵盖了所有基础。