您在错误的位置使用free()
,导致删除列表中新插入的节点。
我应该使用free()吗?
是的,因为您使用的是malloc()
。您动态分配的内存应该由您取消分配,否则将发生内存泄漏。
那么我应该在哪里使用free()呢?
代替您不再需要列表的代码。例如,在main()
。
的末尾
不相关,但通过查看您的insert()
,我可以看到head
是一个全局变量,应该可以避免。将它作为参数传递给列表函数,并使此变量非全局变量是一种更好的方法。如果您愿意,请查看此list's代码,该代码已完全注释,是我以前学过的代码。
Do I cast the result of malloc?不!