在c++中,依然支持从c继承过来的malloc和free,但是与new和delete的区别是:malloc是库函数,用malloc申请内存是对库函数的调用,不属于编译器管理的范畴,也就是说编译器无法控制其行为,使用malloc只是单纯的申请一块内存空间,不能调用自定义类型的构造函数。而new却是属于操作符,在编译器管理的范围之内。这样,当申请的内存类型为自定义类型时,如果用malloc申请,则不会执行该类的构造函数,因为构造函数的执行是由编译器执行的,而如果用new进行申请内存,则会执行该类的构造函数。同样free对于析构函数也是一样的。
c++中malloc和new的区别
最新推荐文章于 2022-07-28 22:40:53 发布