• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

为什么指针定义后,赋值为NULL

一笔之名也 2019-04-23 浏览量:1687
为什么指针定义后,赋值为NULL
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 主要是为了防止不正常的使用,程序跑飞到指针所指的地方,程序进入不正常状态。

    如果设置成了空,那么这个指针,也就没有使用了,只是为了防止不正常的地址访问

    • 发布于 2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:10
  • 定义指针之后需要赋初值,不然后续程序使用容易出现问题;

    • 发布于2019-04-23
    • 举报
    • 评论 2
    • 0
    • 0
代人凌峰 回复了 代人凌峰 :NULL一般指向0地址;程序调用该指针时会判断,以防错误的地址引起死机​ 回复
代人凌峰 回复了 代人凌峰 :如果指针P == NULL 就直接退出 回复

  • 这是为了避免指针指向意外的情况。通常定义指正后赋一个值,避免在后期使用的时候出现指向未知区域。
    • 发布于2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 指针默认定义后的值是随机的,而NULL一般是一个地址,但这个地址实际上是不存在的

    它这样做有个好处,就是后续再对这个指针进行赋值操作时,如果判断到它等于NULL,说明之前没有操作过,就不再对它操作。但如果没有赋初值,它不一定等于NULL,而是一个随机值,这时操作的时候可能引发意外

    • 发布于2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以不用赋值null,只要指针分配一个安全地址给他就可以了,用null是防止程序里面没有给指针分配地址,导致程序出错
    • 发布于2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个其实更多的是一种规范,因为一般情况下判断指针是否有效都是与NULL进行对比,如果指针量等于NULL,表示是无效指针。

    你其实也可以自定义一个表示无效的量。


    • 发布于2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 防止野指针的出现吧,说到底就是规范化编程,为了安全考虑。
    • 发布于2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 我们举个例子说一下变量或指针分配内存的过程。

    先说一下普通的变量。

    以变量定义时,内存空间是直接分配的,比如int aa或int aa[10],aa这个内存地址是有的,内存地址里应该也有数据(解析出来可能是个很大的int型负数)。aa变量不赋值直接用的话,最多是给个警告,"警告,变量值在赋值以前被使用"。

    但是,指针就不一样了。

    变量以指针形式定义的时候,比如int *bb,因为它在内存里都还没有分配空间,虽然bb这个指针本身有初始值(当前这个值没有意义,分配完内存,会指到具体的内存位置),但*bb这个内存是无法读取的(不存在,也就是NULL)。你需要给它分配内存,比如这样的一句话bb = new int[10]。然后,bb的值会变成具体的值(bb指针就指到具体的内存空间了),然后*bb也有值了。

    • 发布于2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 指针不一定赋值NULL,NULL就是空的,头文件定义为0,就是赋值0地址,其实只要你有需要,指针可以赋值任何地址
    • 发布于2019-04-24
    • 举报
    • 评论 0
    • 0
    • 0

  • NULL 是空指针,指针定义完了,用 NULL 初始化
    • 发布于2019-04-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 除了赋值给NULL,还可以赋值给特定的有用的地址,设置成NULL,主要是为了防止内存泄漏,防止访问了保护的地方或是程序地址,导致程序跑飞的
    • 发布于2019-04-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

为什么指针定义后,赋值为NULL