精华内容
下载资源
问答
  • C/C++ 下如何判断空指针

    万次阅读 2017-07-04 17:50:10
    今天在写C++代码,遇到一个很奇怪的问题,在Android JNI下判断一个指针是否为,但是发现 (NULL == ptr )或者 (nullptr== ptr )表达式均为真,然而ptr是刚new出来的,也有地址值。 这就很让人费解了,不信邪...

    今天在写C++代码,遇到一个很奇怪的问题,在Android JNI下判断一个指针是否为空,但是发现 (NULL == ptr )或者 (nullptr== ptr )表达式均为真,然而ptr是刚new出来的,也有地址值。

    这就很让人费解了,不信邪,写了这么多年的代码了,这种代码怎么看怎么没问题,同样的代码到x86环境下跑一次,却得到了我想要的结果,真是让人凌乱啊。。。


    最后只能祭出了我不太习惯的写法 (!ptr),这样就没问题了。


    通过血的教训总结一下,如果要判断一个指针是否为空,不要使用(NULL == ptr )或者 (nullptr== ptr )这种写法,在不同的平台上可能有不同的结果。建议使用(!ptr)或(ptr) 之类的写法,这种写法在多数平台上都没歧义,只有一个统一的结果。 从此可以总结出,在不同的平台上,NULL可能会被定义为其他地址,当然这个地址都是非法不可访问的。此问题同样适用于C。

    虽然前种方法可读性比较高,但是在某些平台上真会把你坑的不要不要的,一切为了可移植性。

    展开全文
  • C++ 判断指针的写法

    千次阅读 2019-06-30 11:00:42
    大家不要听某些人说判断指针是否为用(p==NULL)或(p!=NULL)的格式,C++之父认为这样写是不好的,提倡直接写(p)或(!p)的形式。在win32开发中,if ( NULL == p )是极好的写法。但不要写成:if ( p == NULL ) C++之父...

    C++之父的C++圣经《C++程序设计语言 特别版》中说:
    大家不要听某些人说判断指针是否为空用(p==NULL)或(p!=NULL)的格式,C++之父认为这样写是不好的,提倡直接写(p)或(!p)的形式。 在win32开发中,if ( NULL == p )是极好的写法。但不要写成:if ( p == NULL ) 
    C++之父主要是反对使用“NULL”,因为在某些特殊的开发环境叫,“NULL”并非补定义成地址0,也可能是一个跟平台相关的,用于标记非法地址的其它地址。
    但按照C++标准的规定,只有等于0的地址可以被随便delete多次,因此如果是别的地址,那至少C++标准就给不了任何说法。至于是if(p == 0)和if(p != 0),还是if(p)或者if(!p),这个找不出什么重大区别,个人觉得。
    不过,从代码的可扩展性上讲,写成后者可能好一些,因为如果有一天你决定改用一些原生指针的包装类(比如类似那种auto_ptr模板的)来代替直接操作原生指针,而那个类可能重载了operator!,后者可能让你直接利用这些设施 林锐提倡if ( p == NULL )是从代码的可读性上考虑的,一看就是在判断一个指针,而不是判断一个bool值,它提倡只有bool值才使用if(p)或者if(!p)的形式。
    BS是从可移植方面考虑。
    if( p == NULL ),一眼就可以看出这是在判断一个指针,但如果写成if(!p),那你必须要知道p倒底是什么才能知道这个判断的含义。另外,不要写成if( p == NULL )这样的形式,应该写成:if ( NULL == p )。
    如果你误写成了if ( NULL = p ),那编译时就会提示你,但如果是前者,这个错误就隐藏起来了。

    展开全文
  • 空指针:即char* p = NULL;(类型可变,实际上是初始化为0)的指针。 判断指针是否为空的方法: 1.if(!p){ ... } p为0,!p为真,if(!p)即指针为0或者说为NULL时的情况。 2.if(NULL == p){...} 或者 if(p == NULL){....

    空指针:即char* p = NULL;(类型可变,实际上是初始化为0)的指针。

    判断指针是否为空的方法:
    1.if(!p){ ... }
    p为0,!p为真,if(!p)即指针为0或者说为NULL时的情况。

    2.if(NULL == p){...} 或者 if(p == NULL){...}
    推荐前者因为这样更容易发现错误。

    注:空指针,即首地址为0的指针,stdio.h中,NULL的定义为#define NULL 0
    推荐使用方法1.

    展开全文
  • StringUtils.isNotBlank(null) = false StringUtils.isNotBlank("") = false StringUtils.isNotBlank(" ") = false StringUtils.isNotBlank("bob") = true StringUtils....
    StringUtils.isNotBlank(null)      = false
     StringUtils.isNotBlank("")        = false
     StringUtils.isNotBlank(" ")       = false
     StringUtils.isNotBlank("bob")     = true
     StringUtils.isNotBlank("  bob  ") = true
     
    StringUtils.isBlank(null)      = true
     StringUtils.isBlank("")        = true
     StringUtils.isBlank(" ")       = true
     StringUtils.isBlank("bob")     = false
     StringUtils.isBlank("  bob  ") = false
    
    展开全文
  • java集合判断出现空指针异常

    千次阅读 2017-10-14 18:02:40
    我们在使用集合判断得时候经常为了保证判断的准确性使用 if(list!=null || list.size()>0){ } 但是在具体判断中,如果集合确实是一个空,而不是空对象,则会进行if(null!...null.size()则会报空指针异常!
  • C语言空指针

    2020-04-06 13:10:12
    空指针 定义:不指向任何数据的指针,用NULL表示; int *p=NULL; 分析:空指针保证与任何对象或函数的指针值都不相等,也就是说空指针不会指向任何对象或函数的地址; 典型用法:malloc函数,当分配内存失败时就会返回...
  • 判断为空的问题 ...因为一旦为空 则这个值后再接方法或属性,就会出现空指针异常。 可用 "".equals(属性) "".isEmpty(属性) 代替 判断是否为空 --- if("xx".equals("") || xx==null){ 为空操作 }
  • 空指针异常,java.lang.NullPointerException,判断是否为空
  • 报错: java.lang.NullPointerException 问题描述: 代码: Map<String, Object> params = null; params.get("earliestTime");...对params 和params.get(“earliestTime”)进行非空判断 Map<Stri
  • 野指针野指针:未被初始化的指针,野指针所导致的错误和迷途指针非常相似,但野指针的问题更容易被发现。...但是在使用的时候一定要判断是否为空指针(即该指针有没有指向),不为空才能操作)判断空...
  • Java空指针异常的几种情况

    千次阅读 2020-05-11 23:42:44
    Java空指针异常的几种情况 NullPointerException 说法一 NullPointerException由RuntimeException派生出来,是一个运行级别的异常。意思是说可能会在运行的时候才会被抛出,而且需要看这样的运行级别异常是否会...
  • 空指针判断与思考

    千次阅读 2014-08-08 20:06:18
    判断指针是否是个空指针这个凡是
  • C++中判断指针是否为有3中方法(NULL, 0, nullptr),我们接下来分别对他们进行比较。 1. NULL NULL是C语言的内容,在C语言中,NULL的定义为:#define NULL ((void *)0)。 因此,我们写 int* p = NUL...
  • Qt C++ 空指针

    千次阅读 2019-03-05 17:07:13
    参考博客:https://www.cnblogs.com/porter/p/3611718.html 空指针 0,NULL,nullptr 如果是c++11或以上,推荐nullprt
  • //account查询出为null 但是报错空指针 if (ObjectUtils.isEmpty(account)) { accountInfo.setAccountName(mobile).setPassword(password).setEmail(email); accountInfo.setUserName(userName); ...
  • 遇到的一点问题,说不上大问题,就是有点烦人,如何判断字符串是否为: 我们经常使用的方法,比如:public boolean function (String params){ if (params == null || params.equals("")) { //todo } }上面...
  • Java 布尔类型引起的空指针

    千次阅读 2019-08-27 16:21:41
    在使用这两种布尔类型时, 需要注意,稍有不当, 就会产生空指针异常. 所以当遇到空指针异常时, 需要先看一下有没有布尔类型的参数. 1. Boolean 和 boolean 的区别 boolean 是基本类型, Boolean 是包装类型 ...
  • golang 空指针

    千次阅读 2017-07-21 23:07:40
    前面用用习惯了golang的自动初始化的功能,所以编程的时候会直接声明指针,直接拿来用的情况,就像下面的情况 type N struct { Name string `json:"name"` Data UpdateCommentRequestData `json:"data"` } func ...
  • 主要介绍了Java字符串比较方法equals的空指针异常的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • java数组空指针问题

    千次阅读 2018-05-11 17:16:00
    在java中空指针异常算是一个比较棘手的问题,下面通过一个例子来讲解一下怎么处理空指针,以及出现空指针的问题比如,我们先建好一个Book类,里面包括name属性和bNumber(统计书的总数),并写出get和set方法。...
  • Java空指针异常优雅处理的方式

    千次阅读 2019-05-22 19:51:35
    由于Java开发过程中一不注意就会造成空指针异常,但是如果要避免这些空指针异常我们就可能需要写如下啰嗦有无聊的语句: if(test != null && test.size() > 0) {..............} 为了避免写这些无聊的...
  • 前者返回一个流对象,后者如果出来的值是空的,再.findfirst()等其他的方法就会出现空指针,所以最好给map的取值结果加个默认值,去stream.map(aa-> Maputils.getstring(aa,key,默认值))
  • golang空指针预防

    千次阅读 2019-06-10 21:28:14
    1、凡是有点『.』操作的的行为都要先进行非nil判断; 例如,你想记录一个err的msg,通过err.Error()就可以获取到err的string类型的错误消息msg,但这里需要对err进行非nil判断: if err != nil { log.Error("err...
  • std::string 赋值为空指针

    千次阅读 2020-01-03 16:06:09
    今天运行的程序崩溃了,发现原因为程序中用到了STL的std::string赋值为空指针,形式如下: void fun(const char *pTest) { std::string strTest = pTest; } 就其语法来说,是没有错误的,但程序运行却崩溃了。 ...
  • 问题描述:我的JAVA版本是1.8.0_201 ,在scala官网下载了最新的scala-2.12.8安装后在cmd键入scala 提示 java.lang.NullPointerException at java.util.Arrays.sort(Arrays.java:1438)这个空指针异常 解决方案:下载...
  • C语言学习——指针与数组、空指针

    千次阅读 2016-09-20 09:39:57
    指针与数组 方法1 方法2 小案例指针与数组数组的元素在内存中是互连的,通过指针操作数组某个元素方法1int vals[4]={1,2,3,4}; int* p=vals; /*p指向数组的内存地址,即第一个元素的地址*/ printf(“%d”,*p); /*...
  • 在Java语言中字符串比较有两种方式:== 和equals()。 “==”比较的是针对两个String类型变量的引用,当两个...在用equals方法与其他值做比较的时候,有可能会导致抛出空指针异常。写一个小程序来举例说明: publ...
  • 主要介绍了Java8新特性之空指针异常的克星Optional类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java8特性解决空指针问题

    千次阅读 2019-02-24 19:22:09
    这两个函数放在一起记忆,isPresent即判断value值是否为,而ifPresent就是在value值不为时,做一些操作。这两个函数的源码如下 需要额外说明的是,大家千万不要把 给写成 因为这样写,代码...
  • 平时经常看到如下用法: ...,C++之父认为 判断指针是否为用(p==NULL)或(p!=NULL)的格式 这样写是不好的,提倡直接写(p)或(!p)的形式。在win32开发中,if ( NULL == p )是极好的写法。但不要写成:if ( p == NULL...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 319,305
精华内容 127,722
关键字:

如何判断空指针