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

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

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

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

  • 写回答

1条回答 默认 最新

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

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

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

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮