下列功能有什么问题吗?不知怎么的,他们制造了一个片段错误。
struct processNode* create_node()
{
struct processNode* newNode = (struct processNode*)malloc(sizeof(struct processNode));
newNode->next = NULL;
return newNode;
}
struct processNode* append_node(struct processNode* list,struct processNode* newNode )
{
struct processNode* tracker= NULL;
tracker = list;
if(tracker == NULL)
{
tracker = newNode;
}
else
{
while(tracker->next != NULL)
{
tracker =tracker->next;
}
tracker->next = newNode;
tracker = tracker->next;
}
tracker->next=NULL;
tracker = list;
return tracker;
}
我正在用C创建一个shell,需要创建一个链接列表来解析来自用户的命令行。在第二个函数中,我打算返回一个带有新附加指针的新列表;
发布于 2017-04-17 06:11:47
以下情况将使您在在线tracker->next=NULL;
中出现seg故障
tracker != NULL && newNode == NULL
tracker == NULL
……跟踪器=跟踪器->next;}//下一行将导致问题跟踪器->next=NULL;tracker = list;返回跟踪器;.}你可以这样做:
struct processNode* append_node(struct processNode* list,struct processNode* newNode )
{
struct processNode* tracker= NULL;
tracker = list;
if(!newNode){
//Do nothing
}
else if(tracker == NULL)
{
tracker = newNode;
}
else
{
while(tracker->next != NULL)
{
tracker = tracker->next;
}
tracker->next = newNode;
tracker = tracker->next;
}
return tracker;
}
https://stackoverflow.com/questions/43446009
复制相似问题