搜索

绝不能对非动态分配存储块使用free也不能对同一块内存区同时用fr

gecimao 发表于 2019-08-13 20:52 | 查看: | 回复:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  你申请内存时,实际上系统是把一块标记为未使用的内存地址返回给你,然后把那个地址标记为已使用。

  free是释放程序开发人员,开辟的内存。操作系统为程序分配的内存,由操作系统管理,开发者不应处理。

  展开全部操作系统中有一个记录空闲内存地址的链表。当操作系统收到程序的malloc申请时,就会遍历该链表,然后就寻找第一个空间大于所申请空间的堆结点,然后就将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。

  free:释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及realloc函数来再分配。

  free两次不一定出问题,我也觉得这样!那是教材上说的了,我觉得应该说是“不能对同一块已分配的内存区连续free一次以上”。看来free的原理就像你说的那样,如果那样,那么对同一块已分配的内存区连续free一次以上可能产生的最严重的后会是什么呢?操作系统会终止程序往下运行?还是操作系统会崩溃,然后死机?你觉得呢?

本文链接:http://hem-larm.com/dongtaicunchufenpei/1189.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部