new和malloc的区别

1、申请内存所在位置不同

new:*存储区

malloc:堆

2、返回类型安全性

new:返回的就是对象类型,不需要进行强制类型转换,因此是内存安全的

malloc:返回的是void*类型,需要强制类型转换

3、内存分配失败时的返回值

new:分别配失败,会抛出bac_alloc异常

malloc:分配失败返回NULL

4、是否需要指定内存大小

new:不需要

malloc:需要

5、operator new /operator delete的实现可以基于malloc,而malloc的实现不可以去调用new

等等。。。。。。

https://www.huaweicloud.com/articles/06543baad284a30d54f3711f89e36aed.html

上一篇:C语言内存空间动态分配--实现用户版的malloc


下一篇:[CUDA]CUDA编程实战三——矩阵加法的实现