使用strcmp()找出目标链表节点,在删除一个链表节点后继续遍历出现段错误,提示说是strcmp()的问题

源程序

img

段错误

img

在一条双向循环链表中相邻节点间是以前后指针指向的地址进行访问的,在删除一个节点后该节点已经不在这条链表中,但为什么还会是会因为strcmp()出现段错误啊?请各位指点一下,非常感谢。

贴一下完整代码?
可能是删除节点后没有更新p2指针导致p2指向一段已经删除的地址

list_for_each_entry是个宏定义吗?这个宏咋写的啊?

完整代码有点长

img

img

img

以上是这个出错函数的全部代码