Когда использовать освобождение памяти?

Недавно начал изучать C++ и читал про необходимость освобождения памяти, если память выделяется динамически (delete ptr итп). Потом увидел такой код, где нет освобождения памяти. Это нормально, что не используется оператор delete label, delete txtName, delete layout?

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget *window = new QWidget;
    window->setWindowTitle("MyApp");

    QLabel *label = new QLabel("MyLabel");
    QLineEdit *txtName = new QLineEdit;
    
    QGridLayout *layout = new QGridLayout;
    layout->addWidget(label, 0, 0);
    layout->addWidget(txtName, 0, 1);

    window->setLayout(layout);
    window->show();
    return app.exec();
}

Ответы (1 шт):

Автор решения: eri

Нет смысла удалять компоненты отдельно вручную, ведь пока программа работает они нужны, а когда она закрывается ОС освободит её память полностью.

Ну и для случая рантайма Qt все сделает за вас. В классах уже есть деструкторы, которые удалят дочерние элементы.

→ Ссылка