Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 链表队列。被指针卡住了(我想)_C_List_Linked List - Fatal编程技术网

C 链表队列。被指针卡住了(我想)

C 链表队列。被指针卡住了(我想),c,list,linked-list,C,List,Linked List,当我运行这些方法时,我的列表永远不会增长,我也不知道为什么。头和尾总是相等的。我的指针或结构设置是否有问题?我花了4个小时在这件事上转换,我似乎无法找到为什么事情不起作用,除非它是一个指针的东西(我正在学习,不擅长) **现在,这是四个错误: (newHire == NULL) (head == NULL) newHire =newHire->next; temp->next = tail; 顺便说一句,我总是做我的家庭作业和上课,我只是停留在一个更大的项目的一小部分。所以

当我运行这些方法时,我的列表永远不会增长,我也不知道为什么。头和尾总是相等的。我的指针或结构设置是否有问题?我花了4个小时在这件事上转换,我似乎无法找到为什么事情不起作用,除非它是一个指针的东西(我正在学习,不擅长)

**现在,这是四个错误:

(newHire == NULL)    
(head == NULL)
newHire =newHire->next;
temp->next = tail;
顺便说一句,我总是做我的家庭作业和上课,我只是停留在一个更大的项目的一小部分。所以,感谢那些没有侮辱我的人,他们给了我有用的建议。我真的很感激。

这是你的错误

newHire->next = malloc(sizeof(Employee));
malloc的返回类型为void*,因此将其更改为

newHire->next = (EmployeeStruct *)malloc(sizeof(Employee));

if(newHire == NULL)
它将永远不会为空,将其更改为

if(newHire->next == NULL)
也改变

newHire->next = NULL;
您必须再遍历一个时间链接

newHire=newHire->next;
newHire->next = NULL;
这是你的错误

newHire->next = malloc(sizeof(Employee));
malloc的返回类型为void*,因此将其更改为

newHire->next = (EmployeeStruct *)malloc(sizeof(Employee));

if(newHire == NULL)
它将永远不会为空,将其更改为

if(newHire->next == NULL)
也改变

newHire->next = NULL;
您必须再遍历一个时间链接

newHire=newHire->next;
newHire->next = NULL;

我想问题就在这里

temp->next = tail;
tail = temp->next;
在您的
案例“b”中


因为它使
temp->下一个
到它的
头部

,我想问题就在这里

temp->next = tail;
tail = temp->next;
在您的
案例“b”中


因为它使
temp->next
到它的

有很多编译错误..我们试图编译它。。。你使用的枚举没有声明这是你的作业那么没有人会帮你的人。。。你自己试试,只问你在这个问题上的疑问…因为没有人会给你完整的解决方案…我不想要完整的解决方案。这就是为什么我刚刚发布了不起作用的部分。我只是想知道指向head和tail的指针有什么问题,因为当我试图设置下一个节点时,它们永远不会改变。从main()的开头开始,看看head被分配给了什么,然后看看head->next被分配给了什么,然后想一想tail被(或未被)初始化的位置。首先,(顺便说一句,这与你真正的问题没有什么关系)。假设你参加了课程,你的导师有没有提到,即使是顺便提一下,将你的链表功能模块化为特定例程的概念(ll_pushhead,ll_pushtail,ll_pophead,ll_poptail,ll_head,ll_tail,ll_count,快速说出最明显的)?写这些,测试这些,然后将它们整合到你的作业中会比试图用意大利面条式的代码编写解决方案更好地利用你的时间。有了这些,你会惊奇地发现剩下的作业是多么容易。只是考虑一下。很多编译错误……试着编译它…你使用的枚举没有声明这是你的作业那么没有人会帮你的人。。。你自己试试,只问你在这个问题上的疑问…因为没有人会给你完整的解决方案…我不想要完整的解决方案。这就是为什么我刚刚发布了不起作用的部分。我只是想知道指向head和tail的指针有什么问题,因为当我试图设置下一个节点时,它们永远不会改变。从main()的开头开始,看看head被分配给了什么,然后看看head->next被分配给了什么,然后想一想tail被(或未被)初始化的位置。首先,(顺便说一句,这与你真正的问题没有什么关系)。假设你参加了课程,你的导师有没有提到,即使是顺便提一下,将你的链表功能模块化为特定例程的概念(ll_pushhead,ll_pushtail,ll_pophead,ll_poptail,ll_head,ll_tail,ll_count,快速说出最明显的)?写这些,测试这些,然后将它们整合到你的作业中会比试图用意大利面条式的代码编写解决方案更好地利用你的时间。有了这些,你会惊奇地发现剩下的作业是多么容易。只是考虑一下。@ BaviksHa,另一个解决方案是,不要将代码返回> MalOC/<代码>,就像他在代码中所做的那样。code>void*
可隐式转换为
Employee*
(或任何其他指针类型)。顺便说一下,使用
Employee
struct EmployeeStruct
,而不仅仅是
EmployeeStruct
。当然,这两个点只有在他编译的时候才是真正的C,而不是C++伪装成C@ @ BavikSHAH,另一个解决方案是不返回“代码> MalOC/<代码>的返回,就像他在代码中所做的那样。code>void*
可隐式转换为
Employee*
(或任何其他指针类型)。顺便说一下,使用
Employee
struct EmployeeStruct
,而不仅仅是
EmployeeStruct
。当然,这两个点只不过是他编译的C,而不是C++伪装成C。