直接管理内存——new和delete
2024-09-04 11:10:03
一、运算符new
1. 使用new动态分配对象
- 在自由空间分配的内存是无名的,故new无法为其分配的对象命名,而是返回一个指向该对象的指针
- int *pi = new int; //pi指向一个动态分配的、未初始化的无名对象
- 表达式“new int”:①在自由空间构造一个 int 型对象;②返回指向该对象的指针
2. 使用new动态分配并初始化对象
- int *pi1 = new int; //默认初始化,*pi1的值未定义
- int *pi2 = new int(); //对动态分配的对象进行值初始化,*pi2的值为0
- int *pi3 = new int(24) //直接初始化,pi3指向的对象的值为24
- int *pi4 = new int{24} //同上
注:对于定义了自己的构造函数的类类型来说,值初始化和默认初始化的效果是一样的;但对于内置类型来说,值初始化的内置类型对象有着良好定义的值,而默认初始化的对象的值是未定义的。
二、运算符delete
1. 传递给delete的指针必须指向动态分配的内存,或者是一个空指针
2. const对象是可以销毁的
3. 空悬指针:当delete一个指针后,该指针就变为空悬指针了
最新文章
- [读书笔记]C#学习笔记一: .Net Framwork
- MFC编程入门之十一(对话框:模态对话框及其弹出过程)
- Hadoop2.2.0 第一步完成MapReduce wordcount计算文本数量
- ab测试大并发错误
- HighChart 实现从后台取数据来实时更新柱状和折线组图
- money 和 smallmoney
- MySql 环境配置
- Swift - 自定义UIActivity分享
- 一个int类型引发的bug
- python 深浅拷贝
- java调取数据库
- [JavaScript] requireJS基本使用
- Scala--控制结构和函数
- SQLAlchemy+Flask-RESTful使用(二)
- Java 问题定位工具 -- jps
- 占满屏幕的宽高,当把textarea换成其他标签的时候,怎么才能编辑?
- django的母板和继承
- .NetCore源码阅读笔记系列之Security (二) 自定义认证实践
- angular学习笔记(三十)-指令(8)-scope
- 5.用 CSS 创作一个立体滑动 toggle 交互控件
热门文章
- 将图片写入二进制文件,再从二进制文件还原图片(c++)
- Plugin 'InnoDB' registration as a STORAGE ENGINE failed
- ;(function($,window,document,undefined){})(jQuery,window,document)
- 关于Quartz 2D绘图的简单使用
- python基础 - 字符串与列表的基本操作方法
- day04-decorator
- VXLAN简介(摘抄)
- Lingo基本操作
- python2.7入门---CGI编程&;文件上传&;文件下载
- [原创]用python实现系统状态监测和故障转移