实现列表首先插入通用列表中

时间:2013-05-14 13:09:05

标签: c list

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

0 个答案:

没有答案