bywfssl 2017-08-02 03:36 采纳率: 50%
浏览 1766
已采纳

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

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

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

  • 写回答

1条回答 默认 最新

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

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

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

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部