Здравствуйте. Пытаюсь разобраться с менеджментом памяти. Есть неясности:
Примеры абстрактные. При регулярном вызове второго варианта функции myF() не будет ли проблем с адресацией? Или с точки зрения системы оба варианта в равной степени оптимальны?
C++:
//=========== Первый вариант ============================
void myF()
{
myClass my_obj(a,b,c); // здесь объект получает адрес в стеке, выполняется конструктор
my_obj.doSmth();
} // здесь выполнен деструктор, память стека освобождена и может быть повторно выделена
//============ Второй вариант ===========================
void myF()
{
myClass *my_obj = new myClass(a, b, c); // здесь в стеке создается только локальный
// указатель на адрес в куче, затем выполняется
// конструктор. Верно?
my_obj->doSmth();
} // здесь указатель уже удален из стека. А деструктор тоже выполнен? Память в куче
// тоже помечена свободной? Или необходим оператор delete ?