gpt4 book ai didi

c - 为什么这段C代码会陷入无限循环?

转载 作者:行者123 更新时间:2023-11-30 15:59:34 26 4
gpt4 key购买 nike

我一直在尝试修复此代码中的无限循环。但是,我无法理解为什么会发生无限循环。此代码尝试在处理之前对作业进行从小到大的排序。

SortJobs()
{
linked_list ptr, h, temp, pptr;
int i, j;

pptr = ready_queue;
ptr = ready_queue->next;
h= ready_queue;

while(ptr != NULL) {
if ((ready_queue->pcb.job_length - ready_queue->pcb.run_time) > (ptr->pcb.job_length - ptr->pcb.run_time)) {
ready_queue = ptr;
pptr->next = ptr->next;
ptr->next = h->next;
h->next = pptr->next;
pptr->next = h;
ptr=h->next;
h=ready_queue;
pptr=ptr->next;
} else {
pptr = ptr;
ptr=ptr->next;
}
}
}

最佳答案

gdb 是调试此类问题的好 friend 。请开始使用调试器!

OTOH,这是一个循环(链接)列表吗?!

提示:在运行 SortJobs() 之前,您可以运行 ready_queue 并打印所有元素并查看它是否进入无限循环吗?!

无限循环的原因可能是因为您没有将链接列表中的最后一个节点设置为NULL。您可以检查您的 addNode() 函数。

关于c - 为什么这段C代码会陷入无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com