malloc分配内存和new分配内存有什么区别
时间: 2024-01-07 15:02:50 浏览: 85
malloc 与new的区别
1. 语法不同:malloc是C语言中的函数,需要使用头文件stdlib.h来调用;而new是C++中的关键字,不需要包含任何头文件。
2. 返回类型不同:malloc返回的是void*指针类型,需要进行强制类型转换;而new返回的是具体类型的指针,不需要进行强制类型转换。
3. 分配内存的方式不同:malloc只负责分配内存,不会自动调用构造函数,需要手动初始化对象;而new则会调用构造函数来初始化对象。
4. 内存越界检查不同:malloc分配内存时不会检查数组越界问题,而new会检查是否越界。
5. 内存释放方式不同:malloc分配的内存需要使用free函数进行释放;而new分配的内存需要使用delete关键字进行释放。
总的来说,new分配内存相对于malloc更加方便、安全,而且可以自动调用构造函数进行对象初始化,是C++中更为推荐的内存分配方式。但是,在一些特定的场景下(比如需要与C语言代码进行交互),还是需要使用malloc。
阅读全文