我的问题是,如果分配的变量再次被malloced而不释放内存,垃圾收集器将释放内存。
例如:
ptr1 = malloc(100)
ptr1 = malloc(200)
在这种情况下,第一个分配的内存是否会被垃圾收集器解除分配? 如果是,那么当...... ???
答案 0 :(得分:5)
不,它会导致内存泄漏。
C中没有垃圾收集器。
你必须自己做内存管理。
ptr1 = malloc(100);
free(ptr1);
ptr1 = malloc(200);
...
...
free(ptr1);
答案 1 :(得分:1)
C中没有垃圾收集器。
答案 2 :(得分:1)
C 没有垃圾收集器;您显示的代码将导致内存泄漏。
您有责任使用free()
解除内存:
ptr1 = malloc(100);
free(ptr1);
ptr1 = malloc(200);