您的位置:首页 > 娱乐 > 八卦 > 中文logo设计网站_搜索引擎优化人员优化_百度网盘搜索引擎入口_网络营销活动策划方案模板

中文logo设计网站_搜索引擎优化人员优化_百度网盘搜索引擎入口_网络营销活动策划方案模板

2025/2/27 10:41:48 来源:https://blog.csdn.net/weixin_41733034/article/details/145621301  浏览:    关键词:中文logo设计网站_搜索引擎优化人员优化_百度网盘搜索引擎入口_网络营销活动策划方案模板
中文logo设计网站_搜索引擎优化人员优化_百度网盘搜索引擎入口_网络营销活动策划方案模板

new malloc流程

new

new流程

  1. 调用operator new

  2. 分配内存:在free store 生成对象

    • free store 可能在 堆 / 自定义的地方

      可以认为虚拟内存到物理内存的映射关系早已完成

    • 若分配内存失败(内存空间不够),抛出std::bad_alloc 异常

  3. 调用 构造函数(并生成可能的虚表指针)。

malloc

malloc申请的是虚拟内存,还要再完成缺页才会到物理内存

维护有内存池

  • 小于128k
    • 通过break从内存池中分配
    • free释放后,不一定擦除,会回到内存池中。
  • 大于128k
    • mmap每次都是系统调用
    • free释放后操作系统会立刻回收

向前偏移

  • 为了描述分配的大小:多十六个字节的向前偏移
  • 所以free时不必知道具体的类型

申请内存失败

  • 失败时,默认返回NULL空指针,不throw异常
  • 必要时可以手动抛出 std::bad_alloc 异常
void *ptr = malloc(size);
if (ptr == nullptr)throw std::bad_alloc();

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com