野指针不是 NULL指针,它是随即指向一块内存的指针。野指针是很危险的,会导致内存泄漏,if语句对它不起作用。
导致野指针的原因有两种:
(1)野指针指向了一块没有访问权限的内存。(即指针没有初始化)
(2)野指针指向了一个已经释放的内存。
因为野指针是因为我们的不良编程习惯造成的,所以我们养成良好的编程习惯才能尽可能避免野指针的出现。下面是一些好的编程习惯:
首先,尽量将指针初始化为NULL,用完后也可以将其赋值为NULL。因为NULL代表0地址,0地址不能进行操作。这样做在代码出现段错误时,有利于找到错误并修改。
其次,使用malloc分配内存。(在堆空间内分配)分配后要进行检查是否分配成功,最后要进行释放内存。