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