
动态内存管理-智能指针
文章平均质量分 76
智能指针使得自动、异常安全的对象生存期管理可行。
繁星璀璨G
单身,求对象
展开
-
C++标准模板(STL)- C 内存管理库 - 扩张之前分配的内存块 (std::realloc)
重分配给定的内存区域。它必须是 std::malloc() 、 std::calloc() 或 std::realloc() 先前分配的,且仍未被 std::free() 释放,否则行为未定义。重分配按以下之一进行:a) 若可能则扩张或收缩 ptr 所指向的既存内存区域。区域的内容直到新旧大小的较小者都保留为更改。若区域扩张,则数组新部分的内容是未定义的。b) 分配大小为 new_size 字节的新内存块,复制大小等于新旧大小较小者的内存区域,并释放旧块。原创 2024-05-31 08:30:00 · 290 阅读 · 0 评论 -
C++标准模板(STL)- C 内存管理库 - 解分配之前分配的内存 (std::free)
解分配先前由 std::malloc() 、 std::calloc() 、 std::aligned_alloc (C++17 起) 或 std::realloc() 分配的内存空间。若 ptr 是空指针,则函数不做任何事。若 ptr 的值不等于先前 std::malloc() 、 std::calloc() 、 std::aligned_alloc (C++17 起) 或 std::realloc() 返回的值,则行为未定义。原创 2024-05-30 08:30:00 · 513 阅读 · 0 评论 -
C++标准模板(STL)- C 内存管理库 - 分配并清零内存 (std::calloc)
分配 num 个大小为 size 的对象的数组,并初始化所有位为零。若分配成功,则返回指向为任何对象类型适当对齐的,被分配内存块最低(首)字节的指针。若 size 为零,则行为是实现定义的(可以返回空指针,亦可返回某个不可用于访问存储的非空指针)原创 2024-05-29 22:32:22 · 1065 阅读 · 0 评论 -
C++标准模板(STL)- C 内存管理库 - 分配内存 (std::malloc)
分配 size 字节的未初始化存储。若分配成功,则返回指向分配的适合对任何标量类型对齐的内存块中,最低(首)字节的指针。若 size 为零,则行为是实现定义的(可以返回空指针,或某个不可用于访问存储,但必须传递给 std::free 的非空指针)。原创 2024-05-28 08:30:00 · 493 阅读 · 0 评论 -
c++11 智能指针-辅助类 (std::bad_weak_ptr)
std::bad_weak_ptr 是 std::shared_ptr 以 std::weak_ptr 为参数的构造函数,在 std::weak_ptr 指代已被删除的对象时,作为异常抛出的对象类型。std::default_delete 是不指定删除器时 std::unique_ptr 所用的默认删除策略。原创 2022-09-15 08:30:00 · 1382 阅读 · 0 评论 -
c++11 智能指针-辅助类 (std::enable_shared_from_this)
std::enable_shared_from_this 能让其一个对象(假设其名为 t ,且已被一个 std::shared_ptr 对象 pt 管理)安全地生成其他额外的 std::shared_ptr 实例(假设名为 pt1, pt2, ... ) ,它们与 pt 共享对象 t 的所有权。原创 2022-09-14 08:30:00 · 1851 阅读 · 0 评论 -
c++ 智能指针 (std::auto_ptr)
auto_ptr 是通过由 new 表达式获得的对象,并在 auto_ptr 自身被销毁时删除该对象的智能指针。它可用于为动态分配的对象提供异常安全、传递动态分配对象的所有权给函数和从函数返回动态分配的对象。原创 2022-09-13 08:30:00 · 1457 阅读 · 0 评论