学科分类
目录
C语言

野指针

在定义指针变量时,一个指向无效的内存空间的指针被称为野指针。野指针的形成原因有两种:

(1)指针变量定义后未初始化。定义的指针变量若没有被初始化,指针变量的值是一个随机值,指向系统中任意一块存储空间,这种未知指向的指针就是野指针,若该指针非法访问内存单元,会出现程序奔溃。

(2)指针指向了一个已释放的内存空间。例如,使用malloc()函数开辟了一块内存空间,使用完成后将该内存空间释放,而指向这个内存空间的指针就变成了野指针。

对未初始化野指针执行读写操作会出现错误,对第(2)种形式的野指针,内存空间释放之后,系统可能会把该块内存空间分配给其他程序,而指针却仍然指向原来分配空间时的地址再通过该指针读写该内存空间数据,就会发生错误。因此,在编程中应当确保不会出现野指针,最好将未初始化的指针和释放指向内存空间的指针赋值为NULL,防止意外操作野指针。

点击此处
隐藏目录