C语言链表释放删除废弃链表单元指针的小问题?

C语言链表释放删除废弃链表单元指针的小问题?,第1张

程序

定义指针head2

head2 = head -> next

free(head)

head = head2

这样就行了,原来的程序肯定是错误的,head被free以后再去访问的话会出现内存访问错误,在Windows下会引起程序被强制结束。要先保存下一个节点的指针,然后删除头节点。

free(str)释放指针所指向的空间,但str不会自动指向NULL,str的值不会变,他还是指向那块内存,只不过那块内存现在已经不归他使用了。你之所以还能使用strcp(str, "hello"); 向这块内存继续写入东西,那完全是由于你的运气,系统随时有可能将这块空间分配给别的程序,从而导致访问错误。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/13493129.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存