C 双链接列表中的访问冲突错误

C 双链接列表中的访问冲突错误,c,doubly-linked-list,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.i

我在尝试向双链接列表添加元素时出错。我似乎找不到错误

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;
    }
}
以及主功能的相应部分:

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)


如果在
assign
中使用的是
novi
的副本,则可能需要将其更改为:
,因此调用
assign(*nove,p)
没有您可能希望的效果。试着在那里使用指针。
insertBack
中的
l
也是如此(这可能不是唯一的bug,这只是我第一眼看到的。)天哪,我真不敢相信我这么做了。请原谅我把头撞在墙上