首页 > 其他 > 详细

在一台内存为2G的机器上,malloc(20G) 会怎样?如果是new(20G) 会怎样?

时间:2019-12-01 13:36:59      阅读:393      评论:0      收藏:0      [点我收藏+]
  • 首先,malloc和new申请的都是虚拟内存

  • malloc函数的实质,有一个将可用的内存块连接起来的链表,调用malloc的时候,会沿着链表找一个满足用户需求的内存块。然后将这个内存块一分为二,一块和用户所申请的内存大小相同,另一块返回到链表中。如果用户申请一个大的内存块,空闲链表上可能没有可以满足用户要求的片段,这个时候malloc函数就会请求延时,对链表上的内存进行整理。如果还是不可以的话, 内存申请失败,返回NULL

  • new的话,底层实现还是malloc,在分配失败的时候会抛出bad_alloc类型的异常

在一台内存为2G的机器上,malloc(20G) 会怎样?如果是new(20G) 会怎样?

原文:https://www.cnblogs.com/letlifestop/p/11965473.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!