Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/47: Рейтинг темы: голосов - 47, средняя оценка - 4.53
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15

Рекурсия: как выделяется память под рекурсивный вызов?

02.09.2011, 18:49. Показов 9906. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
на картинке файлик из википедии в которой говорится что рекусия имеет вид дерева и некоторые ветви могут вычислятся по многу раз. А как это реализованно в с++? то же с повторениями?
И как выделяется память под рекусивный вызов? Например есть функция с набором локальных переменных - они будут жить до тех пор пока не завершится функция, т.е. так долго пока не будет выход из рекурсии? и мы будем иметь большое множество участков в памяти с одинакововой структурой данных(но разными значениями)?
Миниатюры
Рекурсия: как выделяется память под рекурсивный вызов?  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2011, 18:49
Ответы с готовыми решениями:

Как выделяется память под массив string?
В общем читаю книжку, там объявлены два массива int* p = new int, int* v = new string... бла бла бла ....а потом -> ...После...

Объясните как выделяется память под умные указатели
Читаю книгу Праты, не могу понять этот абзац, а точнее применение операторов new и new и delete и delete с ними. Почему нельзя...

Как выделяется память под структуры?
Не могу понять как считается память под структуры. Если создать структруру без полей - пустую, то ее размер будет 0. Если добавить...

24
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.09.2011, 19:50
Студворк — интернет-сервис помощи студентам
Видимо, у меня немного другое издание, т.к. страницы не совпадают, но вот
пара цитат.
Обработка исключений представляет собой менее структурированный механизм управления, нежели локальные управляющие структуры типа if или for, и он показывает меньше эффективность в случае реально генерации исключения. Поэтому использовать такой механизм стоит лишь тогда, когда более традиционные структуры управления либо неэлегантны, либо недопустимы.
Рассмотренным применением исключений не стоит перебарщивать, ибо это ведет к запутанному коду. Всегда лучше, по возможности, придерживаться традиционный трактовки - "обработка исключений есть обработка ошибок".

Хотя он пишет, что использование исключений для выхода из рекурсии является элегантным. Может быть... Правда я еще не встречал рекурсивных функций, из которых сложно было выйти... Итого, как я понял, есть два варианта - хорошо продумать функцию с самого начала, или использовать исключение в качестве костыля...
2
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
02.09.2011, 19:54  [ТС]
спасибо парни вам за ответы все и за хорошие ссылки. пойду....переваривать......
0
Заблокирован
02.09.2011, 19:55
Цитата Сообщение от diagon Посмотреть сообщение
Правда я еще не встречал рекурсивных функций, из которых сложно было выйти
там же и пример даётся - поиск по дереву
0
02.09.2011, 20:07

Не по теме:

Цитата Сообщение от LosAngeles Посмотреть сообщение
там же и пример даётся - поиск по дереву
Да, пример, конечно, шикарен - там можно изменить тип возвращаемого значения на string, вместо throw поставить return + поставить return'ы перед вызовами - вроде то же самое получиться. Только вместо двух функций получиться одна, причем более эффективная. Ладно, не убедили вы меня =) Заканчиваю оффтоп...

1
 Аватар для Alex1234
13 / 13 / 2
Регистрация: 11.02.2011
Сообщений: 55
02.09.2011, 20:40
В чем приемущество throw? К тому же ни к месту оно. Стек все равно будет разматываться. А за чем рекурсия? Всегда есть альтернативный способ с циклом и динамической памятью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.09.2011, 20:40

Не выделяется память под массив
void FloodFill_3(HDC hdc, RECT rect, COLORREF color, COLORREF border) //Растровая развертка многоугольников { //flags - состояние...

Где выделяется память под массив
Здравствуйте! Данный код является валидным и компилируется в gcc 5.3.1 без ошибок. По данному коду есть несколько вопросов. ...

Где выделяется память под объекты
Здравствуйте.Подскажите ,пожалуйста ,с небольшим недопониманием насчёт выделения памяти под объекты. Например ,есть функция ...

Почему не выделяется память под двумерный массив?
**ptrarray = new float* ; for (int i = 0; i < h; i++){ ptrarray = new float ; } Пишет: Вызвано исключение:...

Когда выделяется память под переменные - во время объявления или инициализации
Привет! Вопрос такой: когда выделяется память под переменные - во время объявления или инициализации?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru