门窗网站建设新网域名查询
malloc\free和new\delete的区别
malloc/free new/delete
身份: 函数 运算符\关键字
返回值: void* 带类型的指针
参数: 字节个数(手动计算) 类型 自动计算字节数
处理数组: 手动计算数组总字节数 new 类型[数量]
扩容: realloc 不好直接处理
失败: 返回NULL 抛异常并结束
构造\析构: 不调用 自动调用
初始化: 不能初始化 new 类型(val)
头文件: stdlib.h 直接使用
重载: 不允许重载 允许
分配内存位置:堆内存 自由存储区
注意:自由存储区只是一个抽象的概念,如果new底层默认调用了malloc,此时分配的是堆内存,但是new可以当做运算符被程序员重载或者 new(地址)类型 的方式分配内存时,可能会被分配到其它任意的区域,取决于括号内的地址是哪个段