new和molloc
时间: 2023-12-18 08:59:58 浏览: 29
new和malloc是用于在C++中动态分配内存的操作符或函数。
new是C++中的操作符,用于在堆上动态分配内存并创建对象。当使用new操作符时,它会调用operator new()函数来分配内存,并调用构造函数来初始化对象。可以使用new来分配单个对象,也可以使用new[]来分配数组对象。而使用new分配的内存必须使用delete来释放,使用new[]分配的内存必须使用delete[]来释放。
malloc是C语言中的函数,用于在堆上动态分配内存。它只负责分配内存空间,不会调用构造函数来初始化对象。malloc函数返回一个void指针,需要进行强制类型转换后才能使用。而使用malloc分配的内存必须使用free函数来释放。另外,malloc不能重载,也不能像new一样调用构造函数和析构函数。
总结起来,new是C++中的操作符,用于在堆上动态分配内存并创建对象,并支持重载;而malloc是C语言中的函数,用于在堆上动态分配内存,不支持重载。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++ malloc/free/new/delete详解(内存管理)](https://blog.csdn.net/TABE_/article/details/122179176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [new与malloc的区别](https://blog.csdn.net/weixin_43899008/article/details/123261412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]