什么NULL指针、悬空指针、野指针
NULL 指针、悬空指针和野指针是在 C 和 C++ 等编程语言中与指针相关的概念,它们具有不同的特性和潜在风险,以下是详细介绍:
NULL 指针
-
定义:NULL 指针是一个特殊的指针值,它表示指针不指向任何有效的内存地址。在 C 和 C++ 中,通常用宏
NULL
或nullptr
(C++11 引入)来表示空指针。 - 作用:用于初始化指针,表明该指针在初始化阶段尚未指向任何实际的对象或内存区域。这样可以避免指针在未初始化时指向不确定的内存位置,从而引发难以调试的错误。例如:
c
int* ptr = NULL;
-
使用场景:在函数返回值为指针时,如果函数执行失败或没有找到有效的对象,通常会返回
NULL
,让调用者可以据此判断函数执行的结果。例如,在malloc
函数分配内存失败时,它会返回NULL
。
悬空指针
- 定义:当指针所指向的内存被释放或对象被销毁后,该指针仍然保留着原来的地址值,但是这个地址所对应的内存已经不再有效,此时的指针就被称为悬空指针。
-
产生原因:常见的情况是使用
free
或delete
操作释放了动态分配的内存后,没有及时将指针置为
上一篇: ‘responseT
下一篇: 关于Blade框架对