关于函数的参数需要传双重指针的原因

来源:8-6 案例:单链表的基本实现

三尺357159

2024-03-05

根据老师在前面的课程所解释的,形参实际上是一份拷贝,如果这么说的话,直接使用node作为参数的话,即DestoryNode(ListNode *node)这种形式的话,那么分析内存发生泄漏的情况是不是像下面的图中所画的:

图片描述
所以使用指针作为参数的话,像0x1234这一块内存来说,它的next指针指向NULL,它本身也是被调用了free()函数进行释放的,但是由于main()函数的node这个指针没有指向NULL发生了内存泄漏

写回答

1回答

bennyhuo

2024-03-05

main 函数中的 node 没有指向 NULL 不会内存泄露,但 node 变成了悬挂指针或者野指针,如果后续意外地使用了 node 这个指针,会出现内存错误。
1
2
精慕门5506314
回复
三尺357159
回复 三尺357159:难道不是为了减小返回时拷贝的开销吗
2024-05-11
共2条回复

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程