文档章节

shared_ptr<>动态分配内存

rose_willow
 rose_willow
发布于 2017/09/04 15:46
字数 178
阅读 8
收藏 0

// #include <iostream>

#include <string>

#include <memory>

// class menu{

// public:

// menu() = default;

// menu(int one,int two):a(one),b(two){};

// int show(){

// // this->a = a;

// // this->b = b;

// return a+b;

// };

// private:

// int a;

// int b;

// };

int main()

{

// int *p = new int(2252);

// std::cout<<"new dynamic memory's address "<<p<<std::endl;

// std::cout<<"value of the dynamic space "<<*p<<std::endl;

// delete p;

// p = nullptr;

// std::cout<<"freed memory address "<<p<<std::endl;

// std::cout<<"freed memory value "<<*p<<std::endl;

// std::shared_ptrstd::string one = std::make_sharedstd::string("what the hell is going one ?");

// std::cout<<one<<std::endl;

// std::cout<<*one<<std::endl;

// std::shared_ptr<menu> two = std::make_shared<menu>(3,4);

// std::cout<<two<<std::endl;

// std::cout<<two->show()<<std::endl;

// std::cout<<two->show(333,444)<<std::endl;

std::unique_ptr<int> up;

up.reset(new int);

// std::cout<<"up="<<up<<std::endl;

// std::cout<<"*up="<<*up<<std::endl;

*up = 20;

std::cout<<"*up="<<*up<<std::endl;

// std::cout<<"up ="<<up<<std::endl;

*up = 30;

std::cout<<"*up ="<<*up<<std::endl;

up.reset();

std::cin.get();

std::cin.get();

return 0;

}

© 著作权归作者所有

共有 人打赏支持
rose_willow
粉丝 0
博文 90
码字总数 15682
作品 0
石家庄
运营/编辑
动态内存与智能指针

前言 1.生命周期 全局对象:程序启动时分配,程序结束时销毁 局部自动对象:执行流进入其定义的块时分配,执行流退出其定义的块时销毁 局部static对象:程序启动时分配(但在其定义的块或作用...

种地瓜
2016/04/05
58
0
c++ 智能指针及 循环引用问题

c++智能指针介绍 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不...

gfsfg8545
2014/04/07
0
0
C++(浅析)智能指针及C#GC(垃圾回收机制)分析[图]

C++(浅析)智能指针及C#GC(垃圾回收机制)分析[图] c++中我们常常使用运算符new和delete来分配和释放动态内存,然而动态内存的管理非常容易出错 使用new 和delete 管理内存存在三个常见问题: ...

原创小博客
08/06
0
0
《Effective C++》 读书笔记之三 资源管理

《Effective C++》 读书笔记之三 资源管理 准备知识: 所谓资源就是,一旦用了它,将来必须还给系统。最常用的资源是动态分配内存,其他常见的资源有文件描述器、互斥锁、图形界面的字形和笔...

wbf961127
2017/11/14
0
0
Qt 智能指针学习

从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ #include include int main(int argc, char *argv[]){ } 在 从 Qt 的 delete 说开来 一文中,我们提到这个程序存在内存泄露(表现就是...

晨曦之光
2012/05/08
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

精通Spring Boot——第十二篇:分页查询功能的实现

本文将介绍如何实现分页查询功能,推荐使用github的pagehelper插件实现(事实上大家基本都是这么干的),但本文的实现方式和大多数不同,废话少说,现在就带着大家看看区别在哪里。 先看pom...

developlee的潇洒人生
10分钟前
0
0
平淡的秋招之路

1. 概述 在八月中旬之前,我还没有秋招这个概念,认为找工作就是通过学校举办的招聘会。后来慢慢的了解到,由于学校实力的问题,许多好的公司只会去门当户对的学校进行招聘。我们学校只是一个...

firepation
13分钟前
0
0
设置布局中的子控件不可用

RelativeLayout R2 = findViewById(R.id.act_menu_level2_rl); //设置当前R2中的子控件不可用 int childCount = R2.getChildCount(); ......

lanyu96
24分钟前
0
0
分布式系统中处理参数配置的 4 种方案

一个系统中包含有各种各样的配置信息,如一个日志文件需要配置以下几个信息。 日志文件生成主目录 日志文件名称,不同的日志级别对应不同的文件 当前日志级别 还有其他各种业务参数、系统参数...

Java技术栈
26分钟前
1
0
MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码

MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码 先来张在路上…… 铛铛铛……项目源码下载地址:http://files.cnblogs.com/ontheroad_lee/MongoDBDemo.rar 此项目是用M...

Airship
32分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部