сборщик мусора и двойная выделенная память - PullRequest
0 голосов
/ 24 марта 2012

У меня вопрос: освободит ли сборщик мусора память, если выделенная переменная будет снова заблокирована без освобождения памяти.

например:

ptr1 = malloc(100)
ptr1 = malloc(200)

В этом случае первая выделенная память будет освобождена сборщиком мусора ?? Если да, то когда .. ???

Ответы [ 3 ]

5 голосов
/ 24 марта 2012

Нет, это приведет к утечке памяти.

В C. нет сборщика мусора.
Вы должны сами управлять памятью.

ptr1 = malloc(100);
free(ptr1);
ptr1 = malloc(200);
...
...
free(ptr1);
1 голос
/ 24 марта 2012

C не имеет сборщик мусора;показанный вами код приведет к утечке памяти.

Вы отвечаете за освобождение памяти с помощью free():

ptr1 = malloc(100);
free(ptr1);
ptr1 = malloc(200);
1 голос
/ 24 марта 2012

В C. нет сборщика мусора.

...