美文网首页
动态内存与智能指针是什么?make_shared()又是什么?

动态内存与智能指针是什么?make_shared()又是什么?

作者: 全方位小白 | 来源:发表于2020-07-25 23:17 被阅读0次

我们终于老的,可以谈谈未来。 ——《如丧》

今天看代码的时候,看到一个不认识的东西,make_shared(),去查了查发现是智能指针相关的东西,正好记录下来。

考虑对象的生命周期的事情,全局对象在程序启动时被分配,在程序结束时销毁。对于局部自动对象,进入其所在的程序块时被创建,离开块时被销毁。局部static对象在第一次使用前分配,程序结束时被销毁。

而在这种约定俗成的生命周期之外,也可以显式地被创建和释放。这就是动态内存。而为了更安全地使用动态对象,标准库定义了两个智能指针类型来管理动态分配的对象。动态内存的管理通过new, delete这两个运算符来完成。
由于此处极易出错,新标准提供了shared_ptrunique_ptr,前者允许多个指针指向同一对象;后者则“独占”其所指向的对象。

make_shared()提供了一种安全地分配和使用动态内存的手段。该函数在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr

以上内容基本来自神书《C++ Primer》

over~

相关文章

  • 动态内存与智能指针是什么?make_shared()又是什么?

    我们终于老的,可以谈谈未来。 ——《如丧》 今天看代码的时候,看到一个不认识的东西,ma...

  • C++11 make_shared

    make_shared的使用: 尽量使用make_shared初始化 C++11 中引入了智能指针, 同时还有一个...

  • C++11——动态内存

    智能指针 为了使管理动态内存更容易、更安全,新标准库提供了两种管理动态对象的智能指针类型。智能指针的作用类似于常规...

  • 第12章:动态内存

    #1.动态内存与智能指针1.1 shared_ptr类1.2 直接管理内存1.3 shared_ptr和new结合...

  • 动态内存与智能指针

    在C/C++中,动态内存的使用很容易出问题,因为确保在正确的时间释放内存是极其困难的。有时忘记释放内存就会出现内存...

  • 动态内存与智能指针

    c/c++语言的一大特色是在于可以动态的进行内存管理,而这也是它的难点所在。程序出现问题,原因经常在动态内存管理这...

  • 智能指针学习

    智能指针 介绍 为了更容易(同时也更安全的管)的使用动态内存,C++11提供了智能指针来管理new出来的内存sha...

  • c++智能指针用法

    智能指针是什么 智能指针是c++中有四个智能指针:auto_ptr、shared_ptr、weak_ptr、uni...

  • C语言-5、结构体

    写法一 写法二 写法三 结构体指针 结构体指针 与 动态内存开辟 结构体的数组 结构体与结构体指针 取别名 取别名...

  • C++ 引用计数技术及智能指针的简单实现

    1.智能指针是什么 简单来说,智能指针是一个类,它对普通指针进行封装,使智能指针类对象具有普通指针类型一样的操作。...

网友评论

      本文标题:动态内存与智能指针是什么?make_shared()又是什么?

      本文链接:https://www.haomeiwen.com/subject/zdlvlktx.html