-
首先,malloc和new申请的都是虚拟内存
-
malloc函数的实质,有一个将可用的内存块连接起来的链表,调用malloc的时候,会沿着链表找一个满足用户需求的内存块。然后将这个内存块一分为二,一块和用户所申请的内存大小相同,另一块返回到链表中。如果用户申请一个大的内存块,空闲链表上可能没有可以满足用户要求的片段,这个时候malloc函数就会请求延时,对链表上的内存进行整理。如果还是不可以的话, 内存申请失败,返回NULL
-
new的话,底层实现还是malloc,在分配失败的时候会抛出bad_alloc类型的异常