C语言的野指针和内存泄漏

本文详细介绍了C语言中的野指针,包括其定义和可能导致的程序错误,提出了解决野指针的三个建议。此外,文章还深入探讨了内存泄漏的概念,将其比喻为存储空间的逐渐耗尽,可能导致系统崩溃。内存泄漏通常是由于动态分配的内存未及时释放所造成的。
摘要由CSDN通过智能技术生成

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、内存泄漏定义
    内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。
    内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值