关于空指针,野指针和void*指针的联系与区别
2024-07-13 14:37 阅读(263)

空指针和野指针是两种不同的概念。


空指针(Null Pointer)指的是没有指向任何有效内存地址的指针,通常被赋值为0或者nullptr。在访问空指针所指向的内存时,会导致程序崩溃或出现未定义的行为。


野指针(Wild Pointer)指的是指向一块未知或者无效内存地址的指针。通常情况下,野指针是未初始化的指针或者指向已经释放的内存地址。当使用野指针时,同样会导致程序崩溃或者出现未定义的行为。


======================================================================


void* 是一种特殊的指针类型,通常称为“无类型指针”或者“通用指针”。


void* 类型的指针可以指向任何类型的数据,因为它是一种无类型指针。在使用 void* 指针时,需要进行显式的类型转换,以便让编译器知道指针指向的具体类型。


虽然 void* 指针通常用来表示无类型指针,但它在语义上并不等同于空指针。空指针通常指的是指针变量具体指向的地址为空,而 void* 指针则是指向某个未知类型的内存地址。