悬空指针:指向已被删除(或释放)的内存位置的指针称为悬空指针。 Pointer 可以通过三种不同的方式充当悬空指针:
- 通过释放内存
- 函数调用
- 当变量超出范围时
空指针:空指针是一种特定的指针类型 – void * – 指向存储中某个数据位置的指针,它没有任何特定类型。空是指类型。基本上,它指向的数据类型可以是任何类型。如果我们将地址char数据类型分配给一个void指针,它就会变成一个char指针,如果是int数据类型,那么就是int指针,依此类推。任何指针类型都可以转换为空指针。因此,它可以指向任何值。以下是有关 void 指针的一些要点:
- void 指针不能取消引用。但是,它可以使用类型转换 void 指针来完成
- 由于缺乏具体的值和大小,无法对 void 指针进行指针运算。
悬空指针和空指针之间的表格差异:
Dangling Pointer |
Void Pointer |
A dangling pointer is a pointer that occurs at the time when the object is de-allocated from memory without modifying the value of the pointer. | A void pointer is a pointer that can point to any data type. |
It points to the deleted object. | A void pointer can be assigned the address of any data type. |
It usually occurs at the object destruction time. | The representation of a pointer to the void is the same as the pointer of the character type. |
Dangling pointer errors can only be avoided just by initializing the pointer to one NULL value. | A void pointer can store an object of any type. |
The dangling pointer will be with a free() function in C. | It is also called a general-purpose pointer. |
想要从精选的视频和练习题中学习,请查看C 基础到高级C 基础课程。