bywfssl 2017-08-02 11:36 采纳率: 100%
浏览 1745
已采纳

C语言什么是释放内存啊?

如果两个指针指向同一块内存,只需要释放一次就可以,然后将两个指针赋空。用第一个指针释放了这块内存之后,第二个指针指向的地址就不可用了,再用这个指针去释放就会出现重复释放。

图上12.9.2说的是什么意思啊?,释放内存是什么?图片说明

  • 写回答

1条回答 默认 最新

  • 尤里安龙卷风 2017-08-02 14:14
    关注

    计算机有个叫操作系统的东西,你写的程序是由这个操作系统来管理的。操作系统不但管你程序的执行过程,还管你程序其他有关的资源,比如环境配置、内存空间之类的。
    计算机给你程序分配的内存你的程序才能用,不归你的你就不能用,否则一个程序可以用其他程序的内存,不但不安全,而且很容易乱套的
    回到你问的问题,你的程序要用到动态空间就必须提前向操作系统申请一个内存空间。用完了这个内存空间就必须向操作系统申请释放空间,否则不释放的话你的程序用的空间越来越多,内存就这么大其他程序就没有空间用了。
    那比如申请了一个内存空间a,这个时候A指针和B指针都指向了a。然后用A指针想操作系统申请释放了空间,也就是说把这个内存空间还给了操作系统,操作系统就可以把它再分给别的程序,你这个程序就不能再用了。所以你用B指针再去访问那个空间的时候,那个空间已经不属于你了,就会出现上面说的错误。如果还要申请动态内存的话就继续向系统申请,不够是不是原来那个内存地址就不一定了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器