Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что-то с памятью моей... / 4 сообщений из 4, страница 1 из 1
20.11.2015, 13:55
    #39108993
avs63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что-то с памятью моей...
Господа,

Помогите начинающему. Вроде и матчасть читал, но так до конца и не разобрался.
У меня есть две функции:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
char * func_b() {
   char *s;
   s = (char *)malloc(10000);
   // ....
   return s;
}

int func_a() {
  char *res;
  res = func_b();
  // ...
  // free(res);  ????
  return 1;
}



Вопрос в следующем: нужно ли в конце func_a явно вызывать free(res) ? Или можно обойтись без этого вызова, а память для переменной res и так будет освобождена автоматически и, следовательно, никакой утечки не произойдет.

Заранее спасибо
...
Рейтинг: 0 / 0
20.11.2015, 14:07
    #39109017
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что-то с памятью моей...
avs63память для переменной res и так будет освобождена автоматически и,
следовательно, никакой утечки не произойдет.
Память, занимаемая непосредственно переменной res - будет освобождена. Память, на которую
указывает значение переменной res - совсем другая история.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.11.2015, 14:07
    #39109018
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что-то с памятью моей...
Автоматически в Си ничего не происходит. Если free() не вызовешь то это будет утечка памяти.
...
Рейтинг: 0 / 0
20.11.2015, 14:14
    #39109026
avs63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что-то с памятью моей...
Спасибо, теперь понятно.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что-то с памятью моей... / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]