当前位置: 首页 > news >正文

【C++】-动态内存管理

作者:小树苗渴望变成参天大树
作者宣言:认真写好每一篇博客
作者gitee:gitee
在这里插入图片描述
如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!

文章目录

  • 前言
  • 一、C++内存管理方式
    • 1.1 new/delete操作内置类型
  • 总结


前言

今天再讲一个老朋友,但是这个老朋友变得比原来更加的优秀了,盖头换面了,还是同一个人,那接下来让我们来看看他的真面目。在C语言说的可以看这篇C语言的动态内存管理


一、C++内存管理方式

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

1.1 new/delete操作内置类型

// 动态申请一个int类型的空间int* ptr1 = new int;int* ptr2 = new int[1];// 动态申请一个int类型的空间并初始化为10int* ptr3 = new int(10);//这种写法只限一个元素的初始化int* ptr4 = new int[1]{ 10 };//这种初始化也行// 动态申请n个int类型的空间int* ptr5 = new int[3]{10,10,10};//动态申请3个int类型的空间并初始化为10int* ptr6 = new int[6]{ 10,10,10 };//动态申请6个int类型的空间并初始化为//前三个初始化为10,后三个默认为0delete ptr1;delete[] ptr2;delete ptr3;delete[] ptr4;delete[] ptr5;delete[] ptr6;

在这里插入图片描述
对于内置类型new和malloc没有什么区别,new可以进行初始化,而且使用起来也很方便,他不需要计算类型的大小,可以自动识别大小,对于内置类型的使用就这些,我们来看看自定义类型

class A
{
public:A(int a = 0): _a(a){cout << " A(int a = 0):" << this << endl;}~A(){cout << "~A():" << this << endl;}
private:int _a;
};

在这里插入图片描述

在这里插入图片描述
对于new和malloc会调用构造函数和析构函数,这和malloc和free最大的差别,所以初始化的方式和之前的差不多,注意一些细节就好了

交叉使用会出现什么情况
对于C语言malloc和free是一对,对于C++new和delete是一对,实现的目的都是一样的,一个是开空间,一个是释放空间,我们来看看交叉使用会出现什么情况
在这里插入图片描述
对于只开辟一个类型空间大小,不管内置类型和自定义类型都没有任何影响,但是开多个类型空间,就回报错,所以大家还是不要交叉使用了。

总结

在这里插入图片描述

相关文章:

【C++】-动态内存管理

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 文章目录 前言一、C内存管理方式1.1 new/delete操作内置类型 总结 前言 今天再讲一个…...

微服务SpringCloud教程——微服务是什么

微服务&#xff08;MicroServices&#xff09;最初是由 Martin Fowler 于 2014 年发表的论文《MicroServices》中提出的名词&#xff0c;它一经提出就成为了技术圈的热门话题。 微服务&#xff0c;我们可以从字面上去理解&#xff0c;即“微小的服务”&#xff0c;下面我们从“…...

RNN架构解析——LSTM模型

目录 LSTMLSTM内部结构图 Bi-LSTM实现 优点和缺点 LSTM LSTM内部结构图 Bi-LSTM 实现 优点和缺点...

苹果电脑系统优化工具:Ventura Cache Cleaner for mac

Ventura Cache Cleaner for Mac是一款专门为苹果电脑开发的系统优化工具&#xff0c;旨在帮助用户清理和优化Mac电脑&#xff0c;提高系统性能和速度。该软件由美国公司Northern Softworks开发&#xff0c;已经推出了多个版本&#xff0c;适用于不同版本的Mac操作系统。 Ventu…...

为了爱人穿越沙漠-心理测试

我觉得很准的一个心理测试。我的答案反射出我的态度&#xff0c;它们是100%的贴切。有兴趣的朋友也不妨一试。 你有一个深爱着的心上人&#xff0c;然而你们却被一片无垠的沙漠相隔两地&#xff0c;你禁不住思念的折磨&#xff0c;决定穿越沙漠去寻找你心中的那个爱人…… 1、…...

SpringBoot月度员工绩效考核管理系统【附任务书|ppt|万字文档(LW)和搭建文档】

主要功能 员工登录&#xff1a; ①首页、个人中心&#xff1a;修改密码、个人信息管理等 ②公告信息管理、绩效指标管理、绩效考核管理 管理员登录&#xff1a; ①首页、个人中心&#xff1a;修改密码、个人信息管理等 ②公告信息管理、部门管理、岗位管理、员工管理、绩效指标…...

【新星计划】STM32F103C8T6 - C语言 - 蓝牙JDY-31-SPP串口通信实验

文章目录 蓝牙技术的发展历史SPP蓝牙串口BLE协议&#xff08;超低功耗应用蓝牙协议&#xff09; 常见通用蓝牙模块JDY-31-SPPHC05/06 Keil 工程开发模版main.c 源文件&#xff1a;接线方式&#xff1a;烧录工具&#xff1a;FlyMcu串口调试工具&#xff1a;XCOM蓝牙调试助手APP …...

算法39:Excel 表列序号

一、需求 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1&#xff1a; 输入: columnTitle “A” 输出: 1 示例 2&…...

Android:ImageView xml方式配置selector 图片切换

1、在res/drawable目录下创建一个新的XML文件&#xff0c;比如selector_image.xml <?xml version"1.0" encoding"utf-8"?> <selector xmlns:android"http://schemas.android.com/apk/res/android"> <!-- 背景选择器 state_pre…...

Spring Boot 缓存 Cache 入门

Spring Boot 缓存 Cache 入门 1.概述 在系统访问量越来越大之后&#xff0c;往往最先出现瓶颈的往往是数据库。而为了减少数据库的压力&#xff0c;我们可以选择让产品砍掉消耗数据库性能的需求。 当然也可以引入缓存,在引入缓存之后&#xff0c;我们的读操作的代码&#xff…...

如何关闭谷歌浏览器自动更新

适用范围: 写自动化脚本时&#xff0c;需要安装浏览器驱动&#xff0c;安装浏览器驱动时需要下载对应的浏览器驱动版本&#xff0c;如果浏览器版本一直在自动更新的话&#xff0c;自动化脚本会报错浏览器版本和浏览器驱动不匹配&#xff0c;所以建议关闭谷歌浏览器自动更新&am…...

mybatis日志工厂

前言&#xff1a; 如果一个数据库操作&#xff0c;出现异常&#xff0c;我们需要排错&#xff0c;日志就是最好的助手 官方给我们提供了logImpl&#xff1a;指定 MyBatis 所用日志的具体实现&#xff0c;未指定时将自动查找。 默认工厂&#xff1a; 在配置文件里添加&#xf…...

020 - STM32学习笔记 - Fatfs文件系统(二) - 移植与测试

020 - STM32学习笔记 - Fatfs文件系统&#xff08;二&#xff09; - 移植与测试 上节学习了FatFs文件系统的相关知识&#xff0c;这节内容继续学习在STM32上如何移植FatFs文件系统&#xff0c;并且实现文件的创建、读、写与删除等功能。各位看官觉得还行的话点点赞&#xff0c…...

flask用DBUtils实现数据库连接池

flask用DBUtils实现数据库连接池 在 Flask 中&#xff0c;DBUtils 是一种实现数据库连接池的方案。DBUtils 提供了持久性&#xff08;persistent&#xff09;和透明的&#xff08;transient&#xff09;两种连接池类型。 首先你需要安装 DBUtils 和你需要的数据库驱动。例如&…...

SQL注入之布尔盲注

SQL注入之布尔盲注 一、布尔盲注介绍二、布尔盲注的特性三、布尔盲注流程3.1、确定注入点3.2、判断数据库的版本3.3、判断数据库的长度3.4、猜解当前数据库名称&#xff08;本步骤需要重复&#xff09;3.5、猜解数据表的数量3.6、猜解第一个数据表名称的长度3.7、猜解第一个数据…...

微服务入门---SpringCloud(一)

微服务入门---SpringCloud&#xff08;一&#xff09; 1.认识微服务1.0.学习目标1.1.单体架构1.2.分布式架构1.3.微服务1.4.SpringCloud1.5.总结 2.服务拆分和远程调用2.1.服务拆分原则2.2.服务拆分示例2.2.1.导入Sql语句2.2.2.导入demo工程 2.3.实现远程调用案例2.3.1.案例需求…...

Rust vs Go:常用语法对比(九)

题图来自 Golang vs Rust - The Race to Better and Ultimate Programming Language 161. Multiply all the elements of a list Multiply all the elements of the list elements by a constant c 将list中的每个元素都乘以一个数 package mainimport ( "fmt")func …...

Typescript 第五章 类和接口(多态,混入,装饰器,模拟final,设计模式)

第五章 类和接口 类是组织和规划代码的方式&#xff0c;是封装的基本单位。 typescript类大量借用了C#的相关理论&#xff0c;支持可见性修饰符&#xff0c;属性初始化语句&#xff0c;多态&#xff0c;装饰器和接口。 不过&#xff0c;由于Typescript将类编译成常规的JavaScri…...

IFNULL()COALESCE()

在 MySQL 中&#xff0c;IFNULL() 函数是可用的&#xff0c;但是请注意它不能直接用于聚合函数的结果。要在聚合函数结果可能为 NULL 的情况下返回特定值&#xff0c;应该使用 COALESCE() 函数而不是 IFNULL() 函数。 以下是代码示例&#xff1a; COALESCE(SUM(pc.CONTRACT_T…...

WPF实战学习笔记23-首页添加功能

首页添加功能 实现ITodoService、IMemoService接口&#xff0c;并在构造函数中初始化。新建ObservableCollection<ToDoDto>、 ObservableCollection<MemoDto>类型的属性&#xff0c;并将其绑定到UI中修改Addtodo、Addmemo函数&#xff0c;将添加功能添加 添加添加…...

初始中断及实现中断

外部中断基础知识 中断概念&#xff1a;在运行主程序时&#xff0c;外部出现了满足中断触发条件的信号&#xff0c;转而去执行中断处理程序&#xff0c;执行完成后返回主程序stm外部中断框架复用功能与重映射 复用功能概念&#xff1a;引脚本身默认是一个GPIO&#xff0c;但它可…...

Unity 3D空间智能适配:Fit It 3D实现物理占位与视觉节奏统一

1. 这不是“自动对齐”&#xff0c;而是空间智能调度&#xff1a;Fit It 3D 解决的是3D世界里的真实物理占位问题你有没有在做关卡编辑时&#xff0c;被一堆散落的箱子、木桶、补给箱卡住进度&#xff1f;手动拖拽、缩放、旋转&#xff0c;反复微调——一个角落多出2毫米&#…...

生产级机器学习服务化:FastAPI+Triton+Prometheus实战

1. 项目概述&#xff1a;这不是一次模型训练&#xff0c;而是一场交付实战“From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题里藏着太多被新手忽略的潜台词。它不是讲怎么调参、怎么画loss曲线&#xff0c;而是直指机器学习项目生命周期中最…...

捡垃圾实战:让ESXi 7.0 U3识别老古董Mellanox ConnectX-2 10G网卡(附驱动修改全流程)

老硬件焕新&#xff1a;ESXi 7.0 U3下Mellanox ConnectX-2网卡驱动改造指南 在二手市场以几十元价格淘到的Mellanox ConnectX-2 10G双口网卡&#xff0c;性能依然强劲&#xff0c;却因为官方停止支持而无法在现代虚拟化平台上使用。本文将带你深入探索如何通过驱动改造&#xf…...

AI Agent Harness Engineering 反思机制3大实现路径:日志回溯 vs 强化学习 vs 人工反馈

AI Agent Harness Engineering 反思机制3大实现路径:日志回溯 vs 强化学习 vs 人工反馈 引言 痛点引入 想象一下:你花了整整两周,用 LangChain、AutoGPT 或者 LlamaIndex 搭了一个帮你写产品PRD草稿的AI Agent。你给它输入了竞品分析报告、用户访谈纪要、项目进度表,满心…...

python的pyd本质:就是Windows平台下的DLL动态链接库

一、 拆解&#xff1a;Python 库的真实生态与 .pyd / .so 的底层逻辑1. Python 真的有百万个第三方 PIP 库吗&#xff1f;不准确。 截至2026年&#xff0c;PyPI&#xff08;Python Package Index&#xff09;官方注册的开源项目总量大约在 50万到60万个 之间。虽然达不到“百万…...

CaldroidListener使用教程:轻松实现Android日期点击事件处理

CaldroidListener使用教程&#xff1a;轻松实现Android日期点击事件处理 【免费下载链接】Caldroid A better calendar for Android 项目地址: https://gitcode.com/gh_mirrors/ca/Caldroid Caldroid是一款功能强大的Android日历组件&#xff0c;而CaldroidListener则是…...

8051项目代码流程图工具选择与应用指南

1. 流程图工具概述接手一个大型8051项目时&#xff0c;快速理解代码结构是每个嵌入式工程师都会面临的挑战。我在处理遗留代码时&#xff0c;第一件事就是寻找合适的流程图工具来可视化程序逻辑。市面上确实存在多种能够解析C51代码并生成流程图的软件&#xff0c;但选择时需要…...

麒麟系统(桌面版)安装 NVIDIA 显卡驱动

麒麟系统&#xff08;桌面版&#xff09;安装 NVIDIA 显卡驱动 一、确认系统和显卡信息 # 查看系统版本 cat /etc/kylin-release# 查看内核版本 uname -r# 查看显卡型号 lspci | grep -i nvidia二、更新系统并安装编译依赖 sudo apt update && sudo apt upgrade -y sud…...

巨噬细胞M1型与M2型的差异

巨噬细胞具有高度的功能可塑性&#xff0c;依据微环境信号的不同&#xff0c;可极化为功能迥异的M1型&#xff08;经典活化&#xff09;与M2型&#xff08;替代活化&#xff09;两大表型。两者在活化机制、代谢特征及生物学功能上呈现出显著的“阴阳”对立与平衡。1. 活化诱导与…...