malloc申请的存储空间能用delete释放吗
时间: 2023-08-02 22:07:04 浏览: 367
14-动态申请和释放存储空间-自己使用的C语言教程PPT-适合老师备课或者自学.pptx
不可以。
在 C++ 中,malloc 和 new 是不同的内存申请方式,它们使用的内存管理机制不同。new 和 delete 会调用构造函数和析构函数,而 malloc 和 free 不会调用构造函数和析构函数。因此,使用 new 分配的内存必须使用 delete 进行释放,而使用 malloc 分配的内存必须使用 free 进行释放。
如果使用 delete 释放 malloc 分配的内存,会导致以下问题:
- 释放的内存大小不正确,可能会导致内存泄漏或程序崩溃。
- delete 会调用对象的析构函数,但是 malloc 分配的内存并没有调用构造函数,因此可能会导致未定义的行为。
因此,为了避免这些问题,应该使用 free 函数来释放 malloc 分配的内存。
阅读全文