利用指针循环访问链表,指针越界读取失败

利用指针访问链表,循环判出条件未顺利执行

//打印出链表中的所有元素
LNode* p = L;
while (p != NULL) {
printf("%d->",p->data);
p = p->next;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

在循环内添加了一个if判断,如果p为空,直接break

我想要达到的结果

告诉我为什么会这个样子,以及具体解决方案

这不是打印链表的问题,在初始化链表表头结点时,表头结点的 L->next = NULL;

while里面的条件是不对的吧,链表之后的数据不一定为空呀