C++中,new/delete和malloc/free的区别

发布网友 发布时间:2022-04-21 07:55

我来回答

1个回答

热心网友 时间:2023-06-22 21:09

1、new/delete是C++的操作符,而malloc/free是C中的函数。
2、new做两件事,一是分配内存,二是调用类的构造函数;同样,delete会调用类的析构函数和释放内存。而malloc和free只是分配和释放内存。
3、new建立的是一个对象,而malloc分配的是一块内存;new建立的对象可以用成员函数访问,不要直接访问它的地址空间;malloc分配的是一块内存区域,用指针访问,可以在里面移动指针;new出来的指针是带有类型信息的,而malloc返回的是void指针。
4、new/delete是保留字,不需要头文件支持;malloc/free需要头文件库函数支持。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com