首页 > 解决方案 > 通过指针删除分配的内存不起作用

问题描述

我正在使用包含 HTTP POST 请求的 QT 框架在 C++ 中创建一个应用程序。回复指针指向的值不会被删除并导致内存泄漏。我试图像这样删除这个内存分配:

if (reply)
{
    qDebug() << "reply deleted";
    delete reply;
}
reply = m_qnam->post(request, jsonString);
qDebug() << reply;
connect(reply, SIGNAL(finished()), this, SLOT(handleNetworkData()));
connect(reply, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(handleSSLErrors()));

每当我尝试这样做时,程序都会立即崩溃。在此类的标头中,回复以指针的形式启动:

QNetworkReply * reply;

有谁知道为什么我的程序通过删除指针指向的内存分配而崩溃?我的问题有什么可能的解决方案?

标签: c++qtpointersqt4

解决方案


也许你应该使用 reply.deleteLater()


推荐阅读