当前位置:网站首页>06 动态内存
06 动态内存
2022-08-09 03:18:00 【纸境止境】
link: geeksforgeeks
1.申请新的内存
模板:
pointer-variable = new data-type;
以下是使用实例:
int *p = NULL; // 指针初始化为空
p = new int; // 然后对变量索取内存
等价于↓↓↓
int *p = new int;
2.基本数据类型初始化内存
我们可以通过 new 运算符来为int、float等基本的数据类型来初始化内存。如果是自定义的数据类型的话,则需要一个 构造函数 来初始化内存。
int *p = new int(25); //对int类型分配内存
float *q = new float(75.25); //对float类型分配内存
// 自定义的数据类型
struct cust
{
int p;
cust(int q) : p(q) {}
};
cust* var1 = new cust; // Works fine, doesn't require constructor
OR
cust* var1 = new cust(); // Works fine, doesn't require constructor
cust* var = new cust(25) // Notice error if you comment this line
3.数组类型内存初始化
模板:
pointer-variable = new data-tpye[size];
使用实例:
int *p = new int[10];
这句话为 10个int类型的分配内存,然后返回第一个元素的指针给p。
4.数组用 new 或者不用的区别
数组不使用 new 的话,数组就会自动通过编译器销毁(在它所在的函数结束时销毁);而使用 new 的话,数组就不会自动的销毁,而是等待销毁命令才会销毁。
5.删除内存
实例:
delete q; //删除基本变量
delete[] p; //删除数组
当使用 new int[n] 的时候除了,会申请 n 个int类型的字节数,还会在前面额外多申请4个字节来保存 int 的个数。所以,删除的时候一定要配套使用 delete[] ,否则不能读取要删除的个数。
6.当运行的时候,没有足够内存
当没有足够内存的情况下,这个请求就会抛出类型为 std::bad_alloc 的异常指示。除非,将 nothrow 与 new 一起使用,这种情况下,它会返回一个NULL指针。
7、堆内存定义的初始化
int* p1 = new int; //用new开辟了一个新的内存,p 指向它,设置断点跟踪,它的内存没有初始化
int *p2 = new int();//对这个新开的值进行了初始化
//以下同理:
int *p3 = new int[10]();
int *p4 = new string();
这种写法对内置的类型才有意义,自己自定义的类是没有效果的。
边栏推荐
- Image.new() 及 img.paste() 的用法记录
- [Network Tutorial] IPtables Official Tutorial - Study Notes 3
- 加密公司集体裁员 以应对加密寒冬和通货膨胀?现加密总市值低于1万亿美元
- 2021-07-21
- 【CAS:41994-02-9 |Biotinyl Tyramide|】生物素基酪氨酰胺
- 掌握 TypeToken 原理及泛型擦除
- 以赛促练-力扣第84场双周赛反思以及第305场周赛补题
- driftingblues靶机wp
- 新型双功能螯合剂NOTA及其衍生物CAS号:147597-66-8p-SCN-Bn-NOTA
- 创建一个DAPP的全流程
猜你喜欢

What are the functions and applications of the smart counter control board?

嵌入式系统驱动高级【2】——平台总线式驱动开发上_基础框架

权限系统就该这么设计(万能通用),稳的一批!

加密公司集体裁员 以应对加密寒冬和通货膨胀?现加密总市值低于1万亿美元

rk3399 PCIe rc设备枚举之设备资源识别分析

ARM开发(二)ARM体系结构——ARM,数据和指令类型,处理器工作模式,寄存器,状态寄存器,流水线,指令集,汇编小练习题

卷积神经网络的推导过程

【机器学习】21天挑战赛学习笔记(三)

BigDecimal 详解

powershell execution strategy
随机推荐
powershell 执行策略
SQLserver重新累计问题
opencv学习入门
深度学习——以天气识别为例,探讨如何保存神经网络模型
How to deal with cyber attacks?
Chrome的JSON美化插件
leetcode 1805. 字符串中不同整数的数目
Chapter3 numpy创建数组
The condition variable condition_variable implements thread synchronization
Celery进阶_任务优先级分配
Oracle并行检索
EventLoop同步异步,宏任务微任务笔记
What are the functions and applications of the smart counter control board?
DSPE-PEG-OH,DSPE-PEG-Hydroxyl,磷脂-聚乙二醇-羟基仅供科研实验使用
剑指 Offer 56 - I. 数组中数字出现的次数
最优化方法——0.618法matlab实现
flatMap() :对每个元素执行映射函数并将结果展平
进程和计划任务管理
net core 读取sqlserver所有表转为json
手把手教你uniapp接入聊天IM即时通讯功能-源码分享