C/C++的内存管理

栈帧最主要的作用就是存储局部数据

 C语言中动态内存管理方式

C语言动态内存管理 该篇详细的讲述了C语言动态内存管理的使用,不太懂的小伙伴可以去了解一下

 C++中动态内存管理方式

首先,C语言内存管理的方式在C++中可以继续使用。但有些地方就无能为力而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。

new和delete操作内置类型

1. 动态申请单个某类型的空间

语法结构

new 类型
//C++写法
int* p1 = new int; //动态申请一个int类型的空间
delete p1; //销毁//二者是等价的//C语言写法
int* p2 = (int*)malloc(sizeof(int)); //动态申请一个int类型的空间
free(p2); //销毁

2. 动态申请多个某类型的空间

语法结构

new 类型[数量]
//C++写法
int* p3 = new int[10]; //动态申请10个int类型的数组
delete[] p3; //销毁//二者是等价的//C语言写法
int* p4 = (int*)malloc(sizeof(int)* 10); //动态申请10个int类型的空间
free(p4); //销毁

 3. 动态申请单个某类型的空间并初始化

//C++写法
int* p5 = new int(10); //动态申请一个int类型的空间并初始化为10
delete p5; //销毁//二者是等价的//C语言写法
int* p6 = (int*)malloc(sizeof(int)); //动态申请一个int类型的空间并初始化为10
*p6 = 10; //赋值free(p6); //销毁

 4. 动态申请多个某类型的空间并初始化

//C++写法
int* p7 = new int[10]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; //动态申请10个int类型的空间并初始化为0到9delete[] p7; //销毁//二者是等价的//C语言写法
//动态申请10个int类型的空间并初始化为0到9
int* p8 = (int*)malloc(sizeof(int)* 10); //申请
for (int i = 0; i < 10; i++) //赋值
{p8[i] = i;
}free(p8); //销毁

注意:申请和释放单个元素的空间,使用new和delete操作符;申请和释放连续的空间,使用new[ ]和delete[ ]。

动态申请自定义类型的数据,new和delete会调用构造函数初始化,构析函数清理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Volatility-内存取证案例1-writeup--xx大赛

题目提示&#xff1a;flag{中文} 按部就班 &#xff08;1&#xff09;获取内存镜像版本信息 volatility -f 文件名 imageinfo 通过上述可知&#xff0c;镜像版本为Win7SP1X64。 &#xff08;2&#xff09;获取进程信息&#xff1a; volatility -f 镜像名 --profile第一步获取…

关于AI Agent、RAG技术揭秘:如何让人工智能更懂你?

人工智能技术正以前所未有的速度改变着我们的世界。从深度学习算法的突破到自动化和机器学习技术的进步。在这个变革的时代&#xff0c;几种前沿技术尤其引人注目&#xff0c;其中包括RAG&#xff08;Retrieval-Augmented Generation&#xff09;、AI Agent以及多模态技术。 近…

工频磁场抗扰度概述及相关注意事项

工频磁场 是指交流输变电设施产生的磁场&#xff0c;工频又称电力频率。 工频的特点是频率低、波长长&#xff1b;我国工频是50赫(Hz)&#xff0c;波长是6000千米(Km&#xff09; 工频磁场的抗扰度试验&#xff08;在有电流流过的地方都会伴生磁场&#xff0c;为了检查设备或系…

pmp就是智商税?

首先要明白的是&#xff0c;证书的价值并不在于证书本身&#xff0c;而在于学习过程中所获得的知识和经验&#xff0c;这才是证书真正的价值&#xff0c;是无法被复制的个人能力。 学习和考证都是经验的积累&#xff0c;通过这个过程可以不断地获取所需的知识&#xff0c;并加…

【Cesium学习笔记】一、加载Cesium并更换天地图底图

【Cesium学习笔记】一、加载Cesium 一、加载Cesium二、用Viewer显示地球三、更换天地图底图 Ps:本教程所有代码于同一个工程中&#xff0c;运行npm run dev默认首页为App.vue&#xff0c;只需替换App.vue的内容即可切换不同页面。 一、加载Cesium 本项目使用nvm管理node版本&…

微服务学习2

目录 一.网关路由 1.1.认识网关 1.2网关快速入门 1.2.1.创建项目 1.2.2.引入依赖 1.2.3.启动类 1.2.4.配置路由 1.3.路由过滤 二.网关登录校验 2.1网关请求处理流程 2.2网关过滤器 2.2.2网关过滤器 2.3自定义GlobalFilter 2.4.登录校验 2.4.1.JWT工具 2.4.2.登…

论文发表|《课外语文》期刊点评_投稿指南

论文发表|《课外语文》期刊点评_投稿指南 《课外语文》 知网 3版3300字符 全包 24年11-12月 可加急9-10月&#xff0c;次月出刊 &#xff08;操作周期2-3个月&#xff0c;文章不是教学类&#xff0c;不要摘要参考文献&#xff09; 《课外语文》杂志创刊于2002年&#xff…

SpringCloud集成Skywalking链路追踪和日志收集

1. 下载Agents https://archive.apache.org/dist/skywalking/java-agent/9.0.0/apache-skywalking-java-agent-9.0.0.tgz 2. 上传到服务器解压 在Spring Cloud项目中&#xff0c;每部署一个服务时&#xff0c;就拷贝一份skywalking的agent文件到该服务器上并解压。不管是部署…

基于PyAutoGUI图片定位的自动化截图工具--jmeter部分

1、计划 压测完成后需要编写性能测试报告&#xff0c;报告中所需数据截图较多&#xff0c;使用自动化操作方便快捷&#xff0c;就编写一个界面工具以便后续复用。之前编写过loadrunner报告的自动化截图脚本&#xff0c;现在用jmeter也比较多&#xff0c;就编写jmeter部分&#…

3V升9V3串LED驱动恒流WT7012

3V升9V3串LED驱动恒流WT7012 WT7012是一款性能卓越的升压转换器&#xff0c;设计用于驱动多达七串的白光LED。该器件具备宽输入工作电压范围(2-24V)&#xff0c;使其在单节或多节锂电池供电的应用中能够稳定提供背光。WT7012支持从3V起升至6V、9V、12V的恒流输出&#xff0c;通…

sqlserver问题记录

今天在利用sql查询数据时出现如下错误 在执行批处理时出现错误。错误消息为: 引发类型为“System.OutOfMemoryException”的异常。 症状 使用 SSMS 运行返回大量数据的 SQL 查询时&#xff0c;会收到类似于以下内容的错误消息&#xff1a; 执行批处理时出错。 错误消息为&…

Linux基础指令补全,权限问题分析—3

一、命令补全&#xff1a; 1.bc指令&#xff1a; 功能&#xff1a;命令行计算器&#xff0c;使用quit退出语法&#xff1a;bc 算式 2.uname指令&#xff1a; 语法&#xff1a;uname 选项功能&#xff1a;uname原来获取电脑或操作系统的相关信息选项&#xff1a; ①-a选项&am…

【IC前端虚拟项目】验证阶段开篇与知识预储备

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 从这篇开始进入验证阶段&#xff0c;因为很多转方向的小伙伴是转入芯片验证工程师方向的&#xff0c;所以有必要先做一个知识预储备的说明&#xff0c;或者作为验证入门的一个小指导吧。 在最开始&#…

如何做好2024年中央企业内部控制体系建设与监督工作

面对日益复杂的经济环境和全球一体化的挑战&#xff0c;中央企业作为国家经济的中流砥柱&#xff0c;必须不断提升内部控制体系的建设与执行水平。随着2024年的脚步逼近&#xff0c;中央企业需围绕国家宏观政策&#xff0c;积极采纳智能化技术&#xff0c;强化内控体系&#xf…

Redis 的数据结构和内部编码

Redis的 5 种数据类型 Redis 底层在实现上述数据结构的时候&#xff0c;会在源码层面&#xff0c;针对上述实现进行 特定的优化 &#xff0c;来达到节省时间/节省空间效果 特定的优化&#xff1a;内部的具体实现的数据结构&#xff0c;在特定场景下&#xff0c;不是其对应的标准…

运动控制卡/运动控制器的ZCAN总线ZMIO310扩展模块使用

本节课程主要分为八个部分给大家讲解ZCAN扩展模块的使用&#xff0c;分别是&#xff1a; 一、ZMIO310系列扩展模块介绍 二、ZMIO310-CAN通讯模块的接线 三、ZMIO310-CAN通讯模块介绍及拨码开关设置 四、ZMIO310子模块接线参考 五、ZMIO310-CAN扩展模块功能验证 六、ZMIO3…

新手怎么正确地做抖音小店?入门级教程来了,建议认真阅读!

大家好&#xff0c;我是电商糖果 新手做抖音小店&#xff0c;不懂小店的运营&#xff0c;总是容易走弯路&#xff0c;踩坑。 糖果这里就给大家带来&#xff0c;新手正确的入门级运营教程。 近期刚开店的朋友&#xff0c;建议认真阅读&#xff01; 第一步&#xff1a;基础后台…

探索艺术的新领域——3D线上艺术馆如何改变艺术作品的传播方式

在数字化时代的浪潮下&#xff0c;3D线上艺术馆成为艺术家们展示和传播自己作品的新平台。不仅突破了地域和物理空间的限制&#xff0c;还提供了全新的互动体验。 一、无界限的展示空间&#xff1a;艺术家的新展示平台 3D线上艺术馆通过数字化技术&#xff0c;为艺术家提供了一…

Java List基础篇

目录 前言一、常用List1.1 List1.1.1 特点1.1.2 常用API 1.2 ArrayList1.2.1 特点1.2.2 使用 1.3 LinkedList1.3.1 特点1.3.2 使用 1.4 CopyOnWriteArrayList1.4.1 特点1.4.2 使用 1.5 Arrays.asList()1.5.1 特点1.5.2 使用 二、对比总结 前言 一、常用List 1.1 List List是…

JUC常用辅助类

一、CountDownLatch 1.原理 它内部维护了一个计数器&#xff0c;该计数器初始化时设定一个数值&#xff0c;表示需要等待的线程数量。每个线程执行完特定任务后会调用CountDownLatch的countDown()方法&#xff0c;该方法会将计数器减一。同时&#xff0c;另外一个或多个线程可…