c - 双链表中的访问冲突错误

标签 c doubly-linked-list

我在尝试将元素添加到双向链表时遇到此错误。我似乎找不到错误。

struct Pacijent
{
    char ime[10];
    [...]
    Pacijent *prev;
    Pacijent *next;
};

struct Lista
{
    Pacijent *front;
    Pacijent *back;
};

void assign(Pacijent p1, Pacijent p2)
{
    memcpy(&p1.ime, &p2.ime, sizeof(p1.ime));
    [...]
}

这是导致错误的函数:

void insertBack(Pacijent p, Lista l)
{
    Pacijent *novi = (Pacijent*)malloc(sizeof(Pacijent));
    assign(*novi, p);
    if (l.back = NULL)
    {
        l.front = l.back = novi;
        novi->prev = NULL;
        novi->next = NULL;
    }
    else
    {
        novi->prev = l.back; //here is where I get the error
        l.back->next = novi;
        novi->next = NULL;
        l.back = novi;
    }
}

以及main函数的相应部分:

Lista *lista = (Lista*)malloc(sizeof(Lista));
    lista->back = lista->front = NULL;

    [...]
    Pacijent p1 = noviPacijent("Marko", "Markovic", "Milan", jmb1, 1.75, 70, 23);
    [...]

    insertBack(p1, *lista);

insertBack 函数对我来说似乎是正确的,但我无法真正找到问题所在。 预先感谢您。

最佳答案

instertBack 函数的第三行:if (l.back = NULL)
您可能想将其更改为: if (l.back == NULL)

关于c - 双链表中的访问冲突错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26573371/

相关文章:

c - 如何在 Ubuntu 的 c 文件中包含 socket.h

c - C 中的结构字段别名

c++ - 信息实际上并未存储在节点数组中

c - 如何编写与MISRA:2012完全兼容的memcpy函数?

c - pcap_if_t : how to pick an element from this structure

c++ - 双向链表

c - 打印双向链表

c++ - 删除双向链表中给定节点之后的节点

c - 如何使用c在终端上实现 "text editor"风格的界面

c - 函数不向双向链表添加元素