Другими словами, что-то вроде этого:

от вопрос уже есть ответ здесь:

Почему память моей программы не освобождается? 2 ответа

У меня есть следующий код, который я создал, чтобы проверить, как память может выделять и освобождать, используя qt и c ++

Платформа: Linux, Ubunut 16.04

testmemeory.h

#include <QObject>

class testMemeory : public QObject
{
    Q_OBJECT
public:
    explicit testMemeory(QObject *parent = nullptr);
    void freeMEm();
    char* str;

};

testmemeory.cpp

testMemeory::testMemeory(QObject *parent) : QObject(parent)
{
        str = new char [30000];
}

void testMemeory::freeMEm(){
    delete [] str;
}

Это массив, который я использовал для хранения объекта.

std::vector<testMemeory*> testList;

И я выделяю память, используя

void MainWindow::allocateMemory()
{
    for(int i=0;i<50000;i++){
        testMemeory *t = new testMemeory();
        testList.push_back(t);
    }

    qDebug()<<"Memory allocated..";
}

И освобождение памяти с помощью

void MainWindow::relaseMemory()
{
    for(int i=0;i<testList.size();i++)
        testList.at(i)->freeMEm();

    qDeleteAll(testList);
    testList.clear();

    qDebug()<<"Memory freed..";

}

Когда я извиняюсь за выделение памяти, объем оперативной памяти, используемой для приложения, увеличился со 150 МБ до примерно 350 МБ, тогда как при вызове функции relayseMemory () объем оперативной памяти все еще составляет 350 МБ, но не сокращается до 150 МБ.

Что может быть причиной.

Ответы на вопрос(1)

Ваш ответ на вопрос