ListResult listInsertFirst(List list, ListElement element) {
NULL_ARG(list, LIST_NULL_ARGUMENT);
Node first = elementCopy(list, element);
NULL_ARG(first, LIST_OUT_OF_MEMORY);
if(!list->size){
list->iterator = first;
list->last = first;
}
first->next = list->first;
list->first = first;
list->size++;
return LIST_SUCCESS;
}
这是我首先插入列表的代码,但是当我在 Eclipse Indigo 中运行它时,它给了我一个错误“分段错误”。我试图删除这一行:
list->first = first;
它没有给我错误。
该功能elementCopy
完美运行:使用数据元素创建新节点并将下一个设置为NULL
.
Node elementCopy(List list, ListElement e){
Node tmp = malloc(sizeof(*tmp));
NULL_ARG(tmp, NULL);
tmp->data = list->copyElement(e);
NULL_ARG(tmp->data, NULL);
tmp->next = NULL;
return tmp;
}