添加到链表时冻结(C)
我的代码编译正确,但当我执行时,insertLast被调用两次,然后我的程序冻结。我不明白为什么它会工作两次,但随后就冻结了 将节点发送到我的链接列表的代码:添加到链表时冻结(C),c,data-structures,linked-list,C,Data Structures,Linked List,我的代码编译正确,但当我执行时,insertLast被调用两次,然后我的程序冻结。我不明白为什么它会工作两次,但随后就冻结了 将节点发送到我的链接列表的代码: int main () { LinkedList* canQueue=createList(); for(ii = 0; ii < 10; ii++) { TinCan* tempCan = (TinCan*) malloc(sizeof(TinCan));
int main ()
{
LinkedList* canQueue=createList();
for(ii = 0; ii < 10; ii++)
{
TinCan* tempCan = (TinCan*) malloc(sizeof(TinCan));
insertLast(canQueue, tempCan);
}
return 0;
}
看起来您正在将第一个节点设置为它自己的邻居。请注意,您使用的是指针,它们不一定复制基础对象
list->head = newNode;
newNode->next=NULL;
current = list->head;
current->next = newNode;
开始时,您将头作为新节点,然后是当前头(当前=新节点),然后是当前。下一步=新节点(新节点。下一步=新节点)。因为您处于while循环中,所以您将永远循环这一节点,直到退出程序。看起来您正在将第一个节点设置为它自己的邻居。请注意,您使用的是指针,它们不一定复制基础对象
list->head = newNode;
newNode->next=NULL;
current = list->head;
current->next = newNode;
开始时,您将头作为新节点,然后是当前头(当前=新节点),然后是当前。下一步=新节点(新节点。下一步=新节点)。因为你在一个while循环中,你将永远在这个节点上循环,直到你退出程序。有一些奇怪的事情,你没有在main中声明
ii
,你在insertLast
中有一个本地ii
,似乎什么都没有做。有一些奇怪的事情,您没有在main中声明ii
,并且在insertLast
中有一个本地ii
,它似乎没有做任何事情。谢谢我现在看到问题了谢谢我现在看到问题了