函数内部分析:1 new的内部执行逻辑深入分析

1579 人浏览 | 时间: 2015-06-23 19:50:57 | 作者: codexia

在new内部分配内存有一个循环,可以多次处理内存分配。如果一次失败,还可以进一步处理,然后再分配。


内部执行基本流程如下:
1.内部创建一个void*指针,调用malloc函数分配内存。如果指针不为空,分配成功,则返回指向分配到的内存的指针。
2.如果指针为空,意味着未分配到内存,则需要进一步处理。因此调用new处理函数,获得内存分配异常处理函数指针。然后调用异常处理函数处理异常,如果处理成功,则继续尝试分配。如果分配失败,还是要调用异常处理函数处理。如此循环下去。
3.如果获取的异常处理函数指针为空,则表明没有处理异常的函数,则创建一个static const std::bad_alloc类型的静态异常对象,然后直接

请微信扫码阅读。
为防止恶意爬虫,
已开启反爬机制,
理解哟~~~~
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0