std::shared_ptr 释放
时间: 2023-10-17 14:29:39 浏览: 102
std::shared_ptr是C++中的智能指针,用于管理动态分配的内存资源。当std::shared_ptr不再被引用时,它会自动释放所管理的内存资源。
在引用的代码中,ptrA被复制给了ptrB和ptrC,并且它们共同管理同一块内存资源。ptrA.unique()返回false,表示有多个shared_ptr指向了同一块内存资源。
在引用的代码中,ptrA.use_count()返回3,表示有3个shared_ptr指向了同一块内存资源。
在引用的代码中,ptrB进行了reset操作,使其不再管理内存资源。ptrA和ptrC仍然指向相同的内存资源。
当所有指向一块内存资源的shared_ptr都被销毁或reset后,这块内存资源会被自动释放。释放内存的具体时间取决于shared_ptr的引用计数。只有当引用计数变为零时,内存资源才会被释放。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++笔记:智能指针 std::shared_ptr](https://blog.csdn.net/Nine_Yao/article/details/123627945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文