0

我正在编写一个使用 QUdpSockets 的应用程序。由于使用 operator new 创建套接字而出现内存问题,我想知道在关闭它后是否需要删除它们。

下面的代码:

socket = new QUdpSocket(this);
socket->bind();
connect(socket, SIGNAL(readyRead()), this, SLOT(getResponse()));

socket->close();
delete socket; //Do I have to do this to free the mem?

帮助将不胜感激。

4

3 回答 3

1

取决于是什么this。每当它被摧毁时,QUdpSocket意志也会被摧毁。

于 2012-04-17T09:20:41.013 回答
1

一旦您不再需要套接字,您就可以调用:

socket->deleteLater();

是的,当你不再需要它时最好销毁它。

另一种解决方案是删除“this”,因此套接字也将被删除。

于 2012-04-18T13:45:57.303 回答
0

如果你完成了套接字,你应该删除它。这样你就安全了。也不疼。然而,正如已经指出的那样,“this”将用于销毁套接字(参见http://doc.qt.io/qt-4.8/qobject.html#QObject)。

于 2012-04-18T13:53:45.687 回答