deallocate:C++ delete 和 deallocate 的区别 2024-04-30 15:26:23 0 0 delete 和 deallocate 的区别 delete是释放动态内存 成员函数中 new的动态内存 deallocate是释放对象内存 成员所占的内存using namespace std;class preson{public:person(){ptr=new int[10];}~person(){ delete ptr;}private:int *ptr;};int main(){while(1){Person *p=new person;allocator<person> a;a.deallocate(p.sizeof(person));}return 0;} 运行结果:程序崩溃 结论: 上述代码,如果deallocate能把所有的内存都释放干净,那么程序将会一直进行下去,因为空间不会增加,但是程序崩溃了,就是因为有没有释放的内存,而那个内存正是每次创建person的时候构造函数new的内存。,deallocate只释放了创建对象时的内存,new的动态内存没有释放掉,如果调用析构函数,delete掉通过new制造出来的动态内存,则程序便可以运行下去。 求点赞👍👍👍 原创不易,点赞容易。 您的鼓励就是我的最大动力!!!。 本篇博客到此结束,谢谢大家观看。 收藏(0)