我必须使用链接列表(因此指针)在c中打印一个集合的列表。但是,当我删除列表的第一个元素并尝试打印列表时,它只是显示了很多地址。有什么问题可能是什么建议?谢谢!删除链接列表的第一个节点
删除功能:
int delete(set_element* src, int elem){
if (src==NULL) {
fputs("The list is empty.\n", stderr);
}
set_element* currElement;
set_element* prevElement=NULL;
for (currElement=src; currElement!=NULL; prevElement=currElement, currElement=currElement->next) {
if(currElement->value==elem) {
if(prevElement==NULL){
printf("Head is deleted\n");
if(currElement->next!=NULL){
*src = *currElement->next;
} else {
destroy(currElement);
}
} else {
prevElement->next = currElement->next;
}
// free(currElement);
break;
}
}
return 1;
}
void print(set_element* start)
{
set_element *pt = start;
while(pt != NULL)
{
printf("%d, ",pt->value);
pt = pt->next;
}
}
很难说没有任何代码,但问题可能是您正在尝试释放其头部进入后打印的清单。更新指向列表的指针,指向'head-> next'条目,并且您应该是golden。 –
你是如何打印清单的? –
您可能想阅读[Stack Overflow问题清单](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist),它会帮助您编写更好的问题。 –