• 8091阅读
  • 10回复

如何通过delete删除QTcpSocket指针 [复制链接]

上一主题 下一主题
离线m石头
 
只看楼主 倒序阅读 楼主  发表于: 2011-08-31
我通过QTcpServer的nextPendingConnection方法得到一个QTcpSocket指针,当连接断开后我想手动删除这个指针,帮助文档中说是可以的,但是当我的程序运行delete pTcpSock(pTcpSock 为QTcpSocket类型的指针)时就崩溃了。哪位大虾知道该怎么显示删除这个指针? 谢谢
离线uidab

只看该作者 1楼 发表于: 2011-08-31
回 楼主(m石头) 的帖子
如果你的 pTcpSock是如下定义的 QTcpSocket * pTcpSock ,我感觉在删除前要让它为空,我看有人对指针都是这样操作后删除,pTcpSock= NULL;
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线m石头
只看该作者 2楼 发表于: 2011-08-31
回 1楼(uidab) 的帖子
设为NULL就不能删除了吧,指针都丢了。。。一般都是delete后置为NULL
离线uidab

只看该作者 3楼 发表于: 2011-08-31
回 2楼(m石头) 的帖子
那是可以的。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线m石头
只看该作者 4楼 发表于: 2011-08-31
回 3楼(uidab) 的帖子
你的意思是:
QTcpSocket* pSock = new QTcpSocket;
pSock = NULL;
delete pSock;

我理解的正确否?
离线uidab

只看该作者 5楼 发表于: 2011-08-31
  1. QLabel *label = new QLabel();
  2. label->setPixmap(QPixmap("status1.png"));      
  3. ........省略若干  
  4. label = NULL;
  5. delete label;

差不多这样的。
我不清楚你的tcp中间有多少代码。



有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线m石头
只看该作者 6楼 发表于: 2011-09-01
自己顶下
离线ch245542
只看该作者 7楼 发表于: 2012-01-12
通过QTcpServer的nextPendingConnection方法得到一个QTcpSocket指针,在断开后
QTcpSocket指针的deleteLater()方法
delete立即删除会有问题
离线ninsun

只看该作者 8楼 发表于: 2012-01-12
QTcpSocket* pSock = new QTcpSocket;
pSock = NULL;
delete pSock;

....这个....
你delete一个空指针是要干嘛...
离线hehui

只看该作者 9楼 发表于: 2012-01-17
5楼的那哥有没有学过C++?不要误人子弟!
离线jasongood

只看该作者 10楼 发表于: 2012-01-17
线程之类的指针最好用deleteLater()来删除, 以防线程没有完全退出就delete了。
快速回复
限100 字节
 
上一个 下一个