C语言编程链表做删除的时候 每当删除第一个数据的时候程序就会崩溃 求大神解决!

2024-12-22 20:19:54
推荐回答(2个)
回答1:

程序崩溃一般系统会返回一个代表错误类型的整型数值,把崩溃时系统的返回数据发出来。
估计你是对空地址进行了写操作,在对指针中的地址进行操作前检查一下指针是否为空,包括函数的参数head也检查一下是否为空,某些情况下由于某些原因可能会出现这种情况

回答2:

作为参数传来的链表头,在函数运行过程中确实改变了,但不会影响调用者的值。

head = head -> next;

head的值变了,但是调用语句 delete(pMyHead);中的pMyHead的值并不改变。
将调用语句改成pMyHead = delete(pMyHead);可以解决问题。

C语言牵涉到内存与指针的部份是比较让人难以理解的