Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: free() внутри рекурсивно вызываемой функции  (Прочитано 6073 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Nick
Интересующийся

ru
Offline Offline

« : 09-09-2015 08:52 » 

Здравствуйте, уважаемые форумчане!

Есть такой код (три функции)
На мой взгляд он  хорошо оптимизирован и действительно считает).

Вопрос может глупый, но... -  Зачем вызывают free() в функции Determinant или CoFactor, разве соответствующие переменные не сгорят после окончания работы функции?

Спасибо!
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 09-09-2015 09:35 » new

Вопрос может глупый, но...

Это не я сказал. Ага

Переменные-то "сгорят", а что будет с выделенной памятью?

Код: (C++)
for (i=0;i<n-1;i++)
            m[i] = malloc((n-1)*sizeof(double));
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 09-09-2015 11:25 » 

На мой взгляд он  хорошо оптимизирован...

Отнюдь не факт. Я бы не назвал хорошо оптимизированным код, который вызывает такую дорогую функцию, как malloc(), в цикле. Ну и с free(),само собой, ситуация не лучше (на самом деле еще хуже).

...и действительно считает).

Тут похоже на правду, явных ляпов не видно. Код с виду рабочий, но до хорошо оптимизированного ему как до Пекина на четвереньках.

P.S. Пардон, сразу не заметил. Там еще есть и такой перл, как возведение минус единицы в степень при помощи pow(). Тоже признак мудрости, достойной Соломона. Явно писал прилежный, но не слишком способный студент.
« Последнее редактирование: 09-09-2015 11:37 от Dale » Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines