Регистрация
23 Май 2013
Сообщения
98
Репутация
0
Спасибо
0
Монет
0
Стоит ли создавать динамические переменные в функции, чтобы после завершения работы функции память не засорялась? Заранее спасибо за ответ.
 
Какую память использовать - зависит от обстоятельств. Иногда - проще локальные переменные все разместить на стеке и потом не думать ни о чем. Иногда - наоборот - стек сильно ограничен и все локальные переменные лучше разместить на куче, а потом освободить память при выходе из функции. Тут - умные указатели в помощь. Иногда вообще - память нужно выделять динамически по требованию, но если для выделения использовать alloca то и про нее можно не думать при выходе из функции - разве что - убедиться, что деструкторы объектов отработали.
 
Что такое "динамические переменные"? Это указатель на динамическую память? Выделение памяти при помощи new надо использовать тогда, когда это необходимо. Для автоматического освобождения динамической памяти удобно использовать "умные указатели" (std::unique_ptr и др.)
 
Хм, после того, как функция заканчивает свою работу, она автоматически удаляет все свои переменные
 
Назад
Сверху