C与C++堆内存的申请与释放
在C中,对堆内存的申请与释放依赖malloc和free两个函数,而在C++中依靠的是new和delete。两者既相似,又有所区别。
相同点:
1、malloc/free和new/delete都是用于堆内存管理。
2、两者的返回值都是地址形式
3、free和delete都不可以重复释放。
不同点:
1、malloc/free是C标准库函数,所以使用前需添加stdlib.h头文件,而new/delete是运算符(关键字),因此不需要头文件。
2、malloc返回值是void*,new返回的是带类型的地址。
3、malloc所跟参数是需要申请堆内存的字节数,而new 所跟的是类型。
void *malloc( size_t size );