同事的面试题,仔细瞅了下。 发现这个问题突然回答不上来。 确实有点生疏,所以做了下面的小结:
malloc 和 free 都是函数。 new 和 delete 是C++ 的运算符!malloc 用 分配内存不会自动调用构造函数, new 就会。malloc 分配的空间的大小必须指定, new会自动分配。malloc 和 new 分配的内存都在堆上面。malloc 分配空间失败会返回 空指针NULL 而 new 分配失败了会抛出std::bad_alloc异常。
不管是new 或者 malloc 分配的空间之后, 都应该记得释放分配的内存。 因为系统不会自动释放你申请的空间, 空间在堆上面。
简单的小结,便于以后查找。
转载请注明原文地址: https://ju.6miu.com/read-674682.html