malloc和free不知道构造函数和析构函数
malloc/free:只要给出想要的内存的长度就分配,并返加(void*)
new/delete:分配内存同时进行类型检测,内置了sizeof运算,如果分配类的话,自动调用类的构造函数,delete也是,释放内存时调类的析构
为什么有必要写自己的operator new和operator delete?
答案通常是:为了效率。缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也使得在某些特定的场合下,可以进一步改善它的性能。尤其在那些需要动态分配大量的但很小的对象的应用程序里,情况更是如此。
有这样一个方法来实现你的自定义的operator new:先让缺省operator new分配一些大块的原始内存,每块的大小都足以容纳很多个airplane对象。
转自http://zhiqiang.org/blog/posts/163-written-test-problems.html
new/delete和malloc/free的区别
最新推荐文章于 2019-07-17 22:22:58 发布