首页 c++ 中 new 的实现
文章
取消

c++ 中 new 的实现

new 操作符在 c++ 中用于动态分配内存,创建对象,并返回指向分配的内存的指针

  • 首先会计算需要分配的内存大小
  • 尝试分配所需要大小的内存
  • 如果分配成功,则会调用构造函数来初始化对象,并返回指向新分配内存的指针
  • 分配失败,会导致返回空指针或抛出异常
    • 返回空指针:如果分配内存失败,即堆中没有足够的空闲内存来满足要求,new 操作符会返回一个空指针(nullptrNULL),表示分配失败
    • 抛出异常: 在 C++ 中,如果没有足够的内存分配,new 操作符将抛出 std::bad_alloc 异常。这是 std::bad_alloc 类的一个实例,它是 C++ 标准库中定义的用于表示内存分配失败的异常类。你可以通过捕获此异常来处理内存分配失败的情况
1
2
3
4
5
6
7
8
9
10
11
12
13
try {
    // 尝试分配一个 int 对象的内存并初始化
    int* ptr = new int(42);

    // 使用 ptr 指向的内存
    // ...

    // 释放分配的内存
    delete ptr;
} catch (const std::bad_alloc& e) {
    // 处理内存分配失败的情况
    std::cerr << "Memory allocation failed: " << e.what() << std::endl;
}

写在最后

感谢你在茫茫人海中找到我🕵🏼

🎉你是第 个读者

㊗️ 你平安喜乐,顺遂无忧!

希望你读完有所收获~

🥂🥂🥂

本文由作者按照 CC BY 4.0 进行授权

c++ 中的 proority queue

-