new/delete与malloc/free的区别
时间: 2023-05-03 12:00:18 浏览: 54
new/delete和malloc/free的区别是前者是C++的关键字,后者是C语言库函数。new/delete可以自动进行内存分配和释放,同时也可以调用类的构造函数和析构函数;而malloc/free需要手动进行内存分配和释放,不能自动调用类的构造函数和析构函数。
相关问题
11、new/delete与malloc/free的区别
1. new/delete是C++中的操作符,而malloc/free是C语言中的库函数。
2. new/delete会调用构造函数和析构函数,而malloc/free不会。
3. new/delete返回的是类型指针,而malloc/free返回的是void*指针。
4. new/delete会自动计算对象的大小,而malloc/free需要手动指定内存块的大小。
5. new/delete可以重载,而malloc/free不能重载。
6. new/delete可以使用placement new来指定对象在已分配的内存块中的位置,而malloc/free不能。
7. new/delete可以在运行时进行类型检查,而malloc/free不能。
8. new/delete在内存不足时会抛出std::bad_alloc异常,而malloc/free返回NULL。
new/delete与malloc/free的区别?
new 和 delete 是 C++ 语言中的内存分配和释放函数,而 malloc 和 free 是 C 语言中的内存分配和释放函数。new 和 delete 更加安全,可以帮助程序员更好地管理内存,而 malloc 和 free 只是简单地分配和释放内存,不提供更多的内存管理功能。