• 6519阅读
  • 7回复

空指针判断 [复制链接]

上一主题 下一主题
离线wenpde163
 
只看楼主 倒序阅读 楼主  发表于: 2013-09-17
关键词: widgetqt5
控件指针
QWidget *widget;


怎么判断widget是否为空啊?
我用:
if (!widget)或者if(widget==NULL)或者if(widget==0)都不行啊????
离线ppdayz

只看该作者 1楼 发表于: 2013-09-17
你可以用qDebug() << widget;来打印出来看看,到底widget是不是个空指针。
记得#include <QDebug>
离线sikylori

只看该作者 2楼 发表于: 2013-09-18
        指针是指向内存地址的,尽管使用delete p;语句,释放的是p指向的地址的内容,而p不会因为指向的地址的内容被释放了而自动赋为NULL的,它依然还是指向之前的内存地址;所以这里delete后需要手动地将p指向NULL(p=NULL),所以这里你说的怎么判断widget是否为NULL,是看你有无进行widget=NULL;操作,或者new QWidget()时成功与否决定的
离线wenpde163
只看该作者 3楼 发表于: 2013-09-18
我只是声明了:QWidget *widget;没有赋值或者new
然后就判断widget是否为空,怎么判断widget是否为空;另外直接使用qDebug()<<widget是不行的
离线bingyifeng

只看该作者 4楼 发表于: 2013-09-18
回 3楼(wenpde163) 的帖子
变量一开始要初始化,
QWidget *widget = NULL
要不然是随机值。所以判空无效。
(可以网上搜搜编码规则,比较基础的要求)
<span style="color:blue ">淘宝,绿石斋</span> <a href="http://shop33295817.taobao.com“> <span style="color:blue ">各种水晶饰品,手链,项链 </span></a>
离线zheguzai

只看该作者 5楼 发表于: 2013-09-18
变量未初始化就是垃圾值,怎么可能是空呢,只有你赋值未NULL之后,才会成为NULL,要不然它自己是不会成为NULL的
离线pxiao_xiao

只看该作者 6楼 发表于: 2013-09-19
未初始化
离线xiaoniede

只看该作者 7楼 发表于: 2013-09-19
Re:回 3楼(wenpde163) 的帖子
引用第4楼bingyifeng于2013-09-18 14:16发表的 回 3楼(wenpde163) 的帖子 :
变量一开始要初始化,
QWidget *widget = NULL
要不然是随机值。所以判空无效。
(可以网上搜搜编码规则,比较基础的要求)

非常赞同!
快速回复
限100 字节
 
上一个 下一个