欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

malloc与new区别

程序员文章站 2022-05-31 09:00:59
...

malloc与new的区别这里已经总结的很好了

需要补充的是:

1、自定义类对象分配内存

new-delete对自定义类对象分配与释放时,会自动调用其默认构造函数与默认析构函数,而malloc-free则不会

2、释放初始化为NULL的指针,不会报错;但是对其解引用会出错

3、申请内存的头地址包含有该内存块的必要信息(暂且这么认为)

例如,

char* str = new char[100];
//delete str;    //error
str++;
delete[] str;  //error
char* str = (char*)malloc(sizeof(char)*100);
str++;
free(str);     //error