教育小百科为您分享以下优质知识
内存分配失败时的返回值不同:
new内存分配失败时,会抛出bac_alloc异常,它不会返回NULL。
malloc分配内存失败时返回NULL。
相关介绍
申请的内存所在位置不同:
new操作符从自由存储区(free store)上为对象动态分配内存空间。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。
malloc函数从堆上动态分配内存。堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用于程序的内存动态分配,C语言使用malloc从堆上分配内存,使用free释放已分配的对应内存。