如果我们做这样的事在Java中使用C会发生什么:C有垃圾收集器像Java吗?
temp.next = temp.next.next;
会发生什么temp.next节点?在Java中有一个转储/垃圾收集器; C中有类似的东西吗?
如果我们做这样的事在Java中使用C会发生什么:C有垃圾收集器像Java吗?
temp.next = temp.next.next;
会发生什么temp.next节点?在Java中有一个转储/垃圾收集器; C中有类似的东西吗?
什么都不会发生。它会继续使用内存,你将失去使用它或释放它的任何手段。
在C中,你必须明确free
你通过malloc
获得的东西,当你完成它时,没有引用计数或垃圾收集的东西。
在c中,如果你没有free
你通过malloc
分配的内存,它只会坐在那里,直到程序执行结束。
与Java不同,C没有垃圾收集。
问题的标题应该是“C是否有垃圾回收器”问题应该不同。答案是不。 – Eregrith 2012-02-07 12:20:00
当然,感谢Eregrith – Zeemaan 2012-02-07 12:22:13
C没有垃圾收集。如果你有兴趣知道为什么,http://stackoverflow.com/questions/4039274/was-there-a-specific-reason-garbage-collection-was-not-designed-for-c/4039474#4039474 – 2012-02-07 14:37:02