1. c动态内存分配用的是malloc calloc,realloc
释放内存用free
2. c++动态内存分配用的是new
释放内存用delete
malloc和calloc 还有realloc非常相似,所以这里以malloc和new为例介绍C和C++动态内存分配的不同
1.类型不同
malloc是c语言标准库函数,返回的都是void指针
而new是c++的运算符,new创建的指针直接带类型信息的
2.功能不同
malloc只是申请一段空间,没有初始化功能
new在创建对象的时候,会初始化对象,执行构造函数,delete释放时会执行析构函数
实际上new的实现是调用了malloc来实现堆内存的统一管理,所以new可以理解为malloc+初始化