c++ - 关于 malloc 和 new 在各自处理内存分配的机制方面的区别?

标签 c++ c memory-management

<分区>

malloc 和 new 在处理内存分配的机制方面有什么区别?

最佳答案

  • malloc 不会像 new 那样抛出 bad_alloc 异常。
    • 因为 malloc 不会抛出异常,所以您必须根据 NULL(或 c++11 及更高版本中的 nullptr)检查其结果,这对于 new。但是,new 可以以不会引发预期的方式使用,就像设置函数 set_new_handler 时一样
  • mallocfree 不调用对象的构造函数和析构函数,因为 C 中没有对象。
  • 参见 this questionthis post .

关于c++ - 关于 malloc 和 new 在各自处理内存分配的机制方面的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7611699/

相关文章:

c++ - 错误的 `-Wsign-conversion` ARM 上的 `ntohs(...)` 错误?

c - 无法读取 C 中的字符

C 重新分配错误 - "Assertion ` ptr == alloc_last_block' 失败!”

ios - 内存问题 - 生存与整体 -> 应用程序被杀死

c++ - 如何为类 union 类编写析构函数

C++ 和 DirectX 我可以直接看到模型和世界,就好像它是透明的?

c++ - 如何在 C++ 中使用代理类执行 "opt-in"接口(interface)?

c++ - 如何为 xcode 安装 Openmpi?

c - 如何在 C 中创建自己的数据类型,如 int、long?

c - inotify 是否同步排队事件?