空指针与悬空指针

时间:2012-10-03 18:02:02

标签: language-agnostic

空指针和悬空指针之间是否存在有意义的差异?看起来这些都是用于指向不指向任何东西的指针的术语。想法是悬空指针使用来引用某些内容而现在却没有 - 其中空指针只是一个不引用任何东西的指针(无论它指向的是什么) )?

2 个答案:

答案 0 :(得分:11)

指针术语:

  • 悬空(或狂野)指针:指向某处但不指向有效对象的指针。
  • 空指针:一个指向特定指定的越界位置的指针,程序永远不会合法地存储数据。特殊类别的悬空指针。
  • 未初始化的指针:从未分配给某个地址的指针。一种悬空指针。
  • 陈旧指针:用于指向某事物的指针,但目标已被删除(通过删除操作符,空闲或超出范围)。一种悬空指针。

悬空指针可以说是指向Hyperspace或Another Dimension,除了空指针,通常被称为指向Nothing。

答案 1 :(得分:8)

空指针只是意味着指针没有指向任何东西,或者在某些语言中意味着它指向的是什么。但因为它是一个空指针,你知道这一点,代码知道这一点,所以没问题。悬挂指针是你认为指向的东西,但实际上不再存在,因此指针实际上是不准确但不知道它。