C++内存分配 new 和 delete
语法
类型* 指针名 = new 类型;//可以赋初值
类型* 指针名 = new 类型(初值);
类型* 指针名 = new 类型{初值};//连续空间
类型* 指针名 = new 类型[元素个数];delete 指针名;
int *a = new int; //创建一个整型空间
void *b = new int;//用 void 指向
char *c = new char('c'); //创建一个字符型空间并赋初值
int *d = new int [10]; //创建一个 10 个元素的整型空间
A *e = new A(10);//创建一个类并赋初值
B *f = new B; //创建一个结构体空间
//释放
delete a;
delete b;
delete c;
delete d;
delete e;
delete f;
new(std::nothrow)使用
#include <iostream> // std::cout
#include <new> // std::bad_alloc
int main()
{char *p;int i = 0;try{do{p = new char[1024 * 1024]; //每次 1Mi++;} while (p);}catch(std::exception &e){std::cout << e.what() << "\n" << "分配了" << i << "M" << std::endl;};//x86 :// bad allocation// 分配了 1893Mlong num = 0x7fffffff; //0x7fffffff = 2,147,483,647 = 2047*1024*1024 = 2047Mchar* myarray = nullptr;try{//vs2015 x86 error C2148: 数组的总大小不得超过 0x7fffffff 字节myarray = new char[2047 * 1024 * 1024]; ///1024 * 1024 * 1024}catch (std::bad_alloc &ba){std::cerr<< "bad_alloc caught: " << ba.what() << '\n'; //bad_alloc caught: bad allocation}delete[] myarray;return 0;
}
int main()
{char *p= NULL;int i = 0;do{p = new (std::nothrow) char[1024 * 1024]; //每次 1Mi++;} while (p);if (NULL == p){std::cout << "分配了 " << i - 1 << " M 内存" //分配了 1890 Mn 内存第 1891 次内存分配失败<< "第 " << i << " 次内存分配失败";}long num = 0x7fffffff; //0x7fffffff = 2,147,483,647 = 2047*1024*1024 = 2047Mchar* myarray = nullptr;//vs2015 x86 error C2148: 数组的总大小不得超过 0x7fffffff 字节myarray = new (std::nothrow)char[2047 * 1024 * 1024]; ///1024 * 1024 * 1024if (nullptr == myarray){std::cerr << " new (std::nothrow)char[2047 * 1024 * 1024] 内存分配失败" << std::endl;}else{std::cout<<" new (std::nothrow)char[2047 * 1024 * 1024] 内存分配成功" << std::endl;}return 0;
}
new 和 malloc 的区别
相关文章:
C++内存分配 new 和 delete
在 C 语言中,可以用库函数 malloc() 来分配内存;在 C 中仍然可以这样做,但 C 还有更好的方法——new 运算符 语法 类型* 指针名 new 类型;//可以赋初值 类型* 指针名 new 类型(初值); 类型* 指针名 new 类型{初值};//连续空间 类型*…...

蓝桥云课--1014 第 1 场算法双周赛
2-数树数【算法赛】(找规律) 一、题目要求 二、思路 由此可以推导出来,当s[i]L时,下一个编号当前编号*2-1;当s[i]R时,下一个编号当前编号*2; 三、代码 #include<bits/stdc.h> #define…...

管理类联考——写作——技巧篇——书写标点符号使用要求规范文档
写作答题卡书写标点符号使用要求规范文档 常用标点符号有逗号、句号、叹号、问号等 11 种,下面一一列举其用法和书写规范。 一、句号 用法:用于陈述句的末尾。 占格情况:占一格,写在格子左下方。 举例: 我看见妈妈走…...

快速解决mfc140u.dll丢失问题,找不到mfc140u.dll修复方法分享
在计算机使用过程中,我们可能会遇到各种问题,其中之一就是某些dll文件丢失。最近,我就遇到了一个关于mfc140u.dll丢失的问题。mfc140u.dll是Microsoft Foundation Class(MFC)库中的一个动态链接库文件,它包…...
福建地区等保测评怎么做
福建地区等保测评怎么做?福建地区等保测评是指在福建地区对网络安全等级保护进行评估的过程。网络安全已经成为现代社会一个重要的议题,各个行业和领域都面临着越来越多的网络安全风险和威胁。为了保护信息系统的安全性和可靠性,各地区都制定…...

mysql数据库的备份和恢复
目录 一、备份和恢复 1、备份: 2、备份的方法: 2.1物理备份: 2.2、逻辑备份 2.3增量备份: 一、备份和恢复 1、备份: 先备份再恢复 备份:完全备份,增量备份 完全备份:将整个…...

动态IP和静态IP哪个安全,该怎么选择
随着互联网的普及,越来越多的人开始关注网络安全问题。其中,IP地址作为网络通信中的重要组成部分,也成为了人们关注的焦点。 在IP地址中,动态IP和静态IP是两种不同的分配方式,它们各自具有不同的特点,那么…...

linux复习笔记03(小滴课堂)
find命令: d查找目录: 按照文件权限查找: 600全部权限: -user根据所属主: 上面的例子是找出文件并打印有多少行。 我们也可以把我们查询到的结果复制到其它文件位置中去: 复制成功。 -mtime根据修改时间…...

webgoat-Broken Access ControlI 访问控制失效
Insecure Direct Object References 直接对象引用 直接对象引用是指应用程序使用客户端提供的输入来访问数据和对象。 例子 使用 GET 方法的直接对象引用示例可能如下所示 https://some.company.tld/dor?id12345 https://some.company.tld/images?img12345 https://some.…...
Beaustiful Soup爬虫案例
文章目录 1 第三方库2 爬取2.1 初始化函数2.2 结束时关闭数据库2.3 生成header2.4 获取请求body2.5 解析异步json数据2.6 使用BS4的find方法解析2.7 写入口函数2.8 调用 3 完整代码 1 第三方库 获取随机UA pip install fake-useragent连接数据库 $ pip3 install PyMySQL发起…...

【Redis】Redis与SSM整合Redis注解式缓存Redis解决缓存问题
一,Redis与ssm整合 1.1 pom.xml配置 在pom.xml中配置相关的redis文件 redis文件: <redis.version>2.9.0</redis.version> <redis.spring.version>1.7.1.RELEASE</redis.spring.version><dependency><groupId>red…...

谈一谈SQLite、MySQL、PostgreSQL三大数据库
每一份付出,必将有一份收货,就像这个小小的果实,时间到了,也就会开花结果… 三大数据库概述 SQLite、MySQL 和 PostgreSQL 都是流行的关系型数据库管理系统(RDBMS),但它们在功能、适用场景和性…...
【微软技术栈】C#.NET 中的本地化
本文内容 资源文件注册本地化服务使用 IStringLocalizer<T> 和 IStringLocalizerFactory将其放在一起 本地化是针对应用支持的每个区域性,将应用资源转换为本地化版本的过程。 只有在完成本地化评审步骤,以验证全球化应用是否做好本地化准备后&a…...

【qemu逃逸】华为云2021-qemu_zzz
前言 虚拟机用户名:root 无密码 设备逆向 经过逆向分析,可得实例结构体大致结构如下: 其中 self 指向的是结构体本身,cpu_physical_memory_rw 就是这个函数的函数指针。arr 应该是 PCI 设备类结构体没啥用,就直接用…...

vue递归获取树形菜单
文章目录 前言什么是递归? 一、数据集二、 递归函数三、打印树形结构展示 前言 什么是递归? 程序调用自身的编程技巧称为递归( recursion)。 递归 粗略的理解为 循环 ,只不过 递归 是调用自身。 在实际使用中…...
[ubuntu]ubuntu22.04默认源和国内源
sudo vi /etc/apt/sources.list 请选择和系统对应的版本,查看系统版本命令: lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 22.04 LTS Release: 22.04 Codename: jammy Ubuntu不同的版本配置的有…...
Map和ForEach的区别,For in和For of的区别
Map和ForEach的区别: 共同点:都可以遍历数组,this指向window,都不会改变原数组。 不同点:map返回一个数组,不会对空数组进行检测,如果是空数组map的话还是返回一个空数组,而空数组…...
json字符串属性名与实体类字段名转换
在项目开发过程中,会遇到实体类字段名与交互的json对象属性名不一致的情况,比如前段使用的是下划线方式定义,后端采用的是驼峰式定义,其他系统使用t表示一个时间戳,自己的系统使用timestamp定义。遇到这种情况…...

Vue Vuex模块化编码
正常写vuex的index的时候如果数据太多很麻烦,如有的模块是管理用户信息或修改课程等这两个是不同一个种类的,如果代码太多会造成混乱,这时候可以使用模块化管理 原始写法 如果功能模块太多很乱 import Vue from vue import Vuex from vuex …...
消费者忠诚度研究:群狼调研帮您制定忠诚客户计划
在当今竞争激烈的市场环境中,消费者忠诚度对于企业的成功至关重要。消费者忠诚度不仅关系到企业的市场份额和盈利能力,还直接影响着企业的品牌形象和声誉。群狼调研作为一家专业的市场研究机构,专注于消费者忠诚度研究,为企业提供…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...