1、野指针定义
野指针指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。
2、如何避免野指针
解决野指针的方案
(1)定义指针时 把指针变量赋值成null
(2)释放内存时,先判断指针变量是否为null
(3) 释放内存完毕后,把指针变量重新赋值成null
char *p = NULL;
p = (char *)malloc(100); //char p[100];
if (p != NULL)
{
free(p);
p = NULL;
}
3、内存泄漏定义
内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。
内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空