因为malloc/free是库函数,不是运算符,他们不能履行结构函数和析构函数,仅仅担任分配内存。
1、malloc与free是C++/C言语的规范库函数,new/delete是C++的运算符。它们都可用于请求动态内存和开释内存。
2、关于非内部数据类型的目标而言,光用maloc/free无法满意动态目标的要求。目标在创立的一起要主动履行结构函数,目标在消亡之前要主动履行析构函数。因为malloc/free是库函数而不是运算符,不在编译器操控权限之内,不能够把履行结构函数和析构函数的使命强加于malloc/free。
3、因而C++言语需求一个能完结动态内存分配和初始化作业的运算符new,以一个能完结整理与开释内存作业的运算符delete。留意new/delete不是库函数。
4、C++程序常常要调用C函数,而C程序只能用malloc/free办理动态内存
new 是个操作符,和什么”+”,”-”,”=”…有相同的位置.malloc是个分配内存的函数,供你调用的.
new是保留字,不需求头文件支撑.malloc需求头文件库函数支撑.
new 树立的是一个目标,malloc分配的是一块内存.
new树立的目标你能够把它当成一个一般的目标,用成员函数拜访,不要直接拜访它的地址空间。
malloc分配的是一块内存区域,就用指针拜访好了,并且还能够在里面移动指针。