C++——new和malloc的区别

  1. new是关键字/操作符,而malloc是函数

  2. new一个对象的时候,不但分配内存,而且还会调用类的构造函数(当然如果类没有构造函数,系统也没有给类生成构造函数,那没法调用构造函数了)

  3. 在某些情况下,“A *pa = new A()”可以把对象某些成员变量(如m_i)设置为0,这是new的能力之一,malloc没这个能力

同理,delete与free的区别也就比较明显:delete不但释放内存,而且在释放内存之前会调用类的析构函数(当然必须要类的析构函数存在)

posted @ 2022-10-28 20:46  香花草的味道  阅读(51)  评论(0)    收藏  举报