0
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;
}
4

0 回答 0