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

情人节new一个对象给你

今天情人节,有没对象的吗?假设你不知道new怎么用,每个人都有两种身份,一种没对象的人,这个时候new一个对象给你,一种是有对象的人,这个delete对象。等你学完这个new和delete知识点,无论何时何地,你都能new或者delete一个对象。

一.关于new与delete

new和malloc一样,就是告诉计算机开辟一段新的空间,但是和一般的声明不同的是,new开辟的空间在堆上,而一般声明的变量存放在栈上。new开辟空间和普通变量开辟空间不同,比如为普通变量开辟的内存(在栈区),在函数体里面使用完之后就会立即被操作系统释放,而new开辟的内存(在堆区)在函数结束的时候必须由程序员手动释放,如果这块内存不用了,用delete运算符释放它

二.使用堆区的内存有四个步骤:

1)声明一个指针;

2)用new运算符向系统申请一块内存,让指针指向这块内存;

3)通过对指针解引用的方法,像使用变量一样使用这块内存;

4)如果这块内存不用了,用delete运算符释放它。

注意: 如果申请成功,返回一个地址;如果申请失败,返回一个空地址;

释放内存的语法:delete 地址;

释放内存不会失败(还钱不会失败)。

三.申请内存的语法:

  • new 数据类型

  • new 数据类型(初始值)

  • new 数据类型[常量表达式]

四.示例:

  int  * p1=new int;//new一个整形对象int* p2 = new int(2); // *p2初始化值是2,这样直接在定义后面初始化是可以的cout << "*p=" << *p << endl;*p = 8;//解引用修改p所直指向的值也是可以的cout << "*p=" << *p << endl;delete p;//如果不想使用指针,可以定义一个变量,在new之前用“*”表示new出来的内容int q = *new int;q = 1;cout << q << endl;int  *p3=new int[1000] //申请1000个单位内存空间int* example2()
{//当new一个数组时,同样用一个指针接住数组的首地址int *q = new int[3];for(int i=0; i<3; i++)q[i] = i;return q;
}struct student
{string name;int score;
};student* stu()
{//这里是用一个结构体指针接住结构体数组的首地址//对于结构体指针,个人认为目前这种赋值方法比较方便student *stud = new student[3]{{"张三", 100}, {"李四", 100}, {"王五", 100}};return stud;
}

注意:

  • 动态分配出来的内存没有变量名,只能通过指向它的指针来操作内存中的数据。

  • 如果动态分配的内存不用了,必须用delete释放它,否则有可能用尽系统的内存。

  • 动态分配的内存生命周期与程序相同,程序退出时,如果没有释放,系统将自动回收。

  • 就算指针的作用域已失效,所指向的内存也不会释放。

  • 用指针跟踪已分配的内存时,不能跟丢。

相关文章:

情人节new一个对象给你

今天情人节&#xff0c;有没对象的吗&#xff1f;假设你不知道new怎么用&#xff0c;每个人都有两种身份&#xff0c;一种没对象的人&#xff0c;这个时候new一个对象给你&#xff0c;一种是有对象的人&#xff0c;这个delete对象。等你学完这个new和delete知识点&#xff0c;无…...

linux篇【15】:应用层-网络https协议

目录 一.HTTPS介绍 1.HTTPS 定义 2.HTTP与HTTPS &#xff08;1&#xff09;端口不同&#xff0c;是两套服务 &#xff08;2&#xff09;HTTP效率更高&#xff0c;HTTPS更安全 3.加密&#xff0c;解密&#xff0c;密钥 概念 4.为什么要加密&#xff1f; 5.常见的加密方式…...

索引-性能分析-explain

explain 执行计划 explain 执行计划各字段含义 1&#xff09;id 就是代表 sql 的执行顺序或者表的执行顺序&#xff1b;id相同从上往下执行&#xff0c;id不同&#xff0c;id值越大越先执行&#xff1b;&#xff08;注&#xff1a;有子查询时就会出现sql执行顺序&#xff09;…...

mbedtls加密组件使用示例

1 mbedtls aes组件的使用 1.1 AES ECB加解密接口使用 int main(int argc, char *argv[]) {char key[256];char *inbuf calloc(1, 257);char *outbuf calloc(1, 257);char *buf calloc(1,257);char *tmp_outbuf outbuf;char *tmp_buf buf;mbedtls_aes_context aes_ctx;mb…...

如何量测太阳光模拟器的光谱致合度?

太阳模拟器是根据国际法规JIS、IEC60904、美国材料试验协会开发设计的AAA级太阳模拟器。对于100毫米100毫米和200毫米200毫米的光斑尺寸&#xff0c;光斑强度的输出功率范围可以从0.1到1太阳光强度。此外&#xff0c;还提供了灵活的出光方向&#xff0c;以满足用户的研究需求&a…...

网络安全领域中CISP证书八大类都有什么

CISP​注册信息安全专业人员 注册信息安全专业人员&#xff08;Certified Information Security Professional&#xff09;&#xff0c;是经中国信息安全产品测评认证中心实施的国家认证&#xff0c;对信息安全人员执业资质的认可。该证书是面向信息安全企业、信息安全咨询服务…...

17- 梯度提升回归树GBRT (集成算法) (算法)

梯度提升回归树: 梯度提升回归树是区别于随机森林的另一种集成方法&#xff0c;它的特点在于纠正与加强&#xff0c;通过合并多个决策树来构建一个更为强大的模型。该模型即可以用于分类问题&#xff0c;也可以用于回归问题中。在该模型中&#xff0c;有三个重要参数分别为 n_…...

05 OpenCV色彩空间处理

色彩空间&#xff08;Color Space&#xff09;是一种用于描述颜色的数学模型&#xff0c;它将颜色表示为多维向量或坐标&#xff0c;通常由三个或四个独立的分量来表示。不同的色彩空间在颜色的表示方式、可表达颜色的范围、计算速度和应用场景等方面存在差异&#xff0c;不同的…...

【CS224图机器学习】task1 图机器学习导论

前言&#xff1a;本期学习是由datawhale&#xff08;公众号&#xff09;组织&#xff0c;由子豪兄讲解的202302期CS224图机器学习的学习笔记。本次学习主要针对图机器学习导论做学习总结。1.什么是图机器学习&#xff1f;通过图这种数据结构&#xff0c;对跨模态数据进行整理。…...

Powershell Install SQL Server 2022

前言 SQL Server 2022 (16.x) 在早期版本的基础上构建,旨在将 SQL Server 发展成一个平台,以提供开发语言、数据类型、本地或云环境以及操作系统选项。 SQL Server Management Studio (SSMS) 是一种集成环境,用于管理从 SQL Server 到 Azure SQL 数据库的任何 SQL 基础结构…...

Jetson NX2 装机过程

1.固态硬盘安装完成后&#xff0c;系统配置 df -h 查看硬盘使用情况 2.查看Jetson NX的IP地址&#xff0c;以下两个都行 ifconfig ip address show 3.Jetson NX2安装arm64的annaconda3&#xff0c;安装有问题报错illegal instruction&#xff0c;未解决。 4.VNC远程登录 …...

初始C++(四):内联函数

文章目录一.内联函数概念二.内联函数用法三.内联函数的特性四.内联函数和宏一.内联函数概念 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函数调用建立栈帧的开销&#xff0c;内联函数提升程序运行的效率。 二.内联函…...

九、初识卷积

文章目录1、通过边缘检测认识卷积2、Padding3、Strid Convelution4、RGB图像的卷积THE END1、通过边缘检测认识卷积 \qquad在使用神经网络进行图像识别时&#xff0c;神经网络的前几层需要完成对图像的边缘检测任务&#xff0c;所谓的边缘检测就是让计算机识别出一张图片的垂直…...

【Linux】【编译】编译调试过程中如何打印出实际的编译命令

&#x1f41a;作者简介&#xff1a;花神庙码农&#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向&#xff09;&#x1f433;博客主页&#xff1a;花神庙码农 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列专栏&#xff1a;Linux技术&…...

linux安装jdk

step1 下载jdk 到下面的网站下载需要的jdk安装包版本。 Java Downloads | Oracle step2 复制到opt目录 其中user_name对应自己的home目录的用户文件夹 sudo cp /home/user_name//home/czh/Downloads/jdk-17_linux-x64_bin.tar.gz /opt/ step3 到opt目录解压安装包&#xf…...

迅为iTOP-3A5000龙芯开发板安装UOS操作系统

3A5000板卡采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统&#xff08;LoongArch&#xff09;&#xff0c;市面上龙芯3A5000主板价格都在上万元&#xff0c;可以说是非常贵了&#xff0c; 迅为全新推出了款千元内的iTOP-3A5000开发板,这款板卡各方面的配置也是第…...

Firefox 110, Chrome 110, Chromium 110 官网离线下载 (macOS, Linux, Windows)

Mozilla Firefox, Google Chrome, Chromium, Apple Safari 请访问原文链接&#xff1a;https://sysin.org/blog/chrome-firefox-download/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org 天下只剩三种&#xff08;主流&am…...

如何使用ArcGIS转换坐标

1.概述大家都知道ArcGIS提供了坐标转换功能&#xff0c;在我们手里的数据坐标系千差万别&#xff0c;经常会遇到转换坐标的时候&#xff0c;那么是否可以用ArcGIS进行转换&#xff1f;答案是肯定的&#xff0c;但是转换的过程比较复杂&#xff0c;这里为大家介绍一下转换的方法…...

链表基本原理

链表基本原理1.链表1.1 基本原理1.2 链表大O记法表示2. 链表操作2.1 读取2.2 查找2.3 插入2.4 删除3.链表代码实现1.链表 1.1 基本原理 节点 组成链表的数据格子不是连续的。可以分布在内存的各个位置。这种不相邻的格子就叫结点。每个结点保存数据还保存着链表里的下一结点的…...

基于JAVA+SpringBoot+Vue+ElementUI中学化学实验室耗材管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 当前&#xff0c;中学…...

革新性网页资源提取工具:猫抓让视频下载效率提升300%的秘密

革新性网页资源提取工具&#xff1a;猫抓让视频下载效率提升300%的秘密 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字化时代&#xff0c;我…...

SEO 系统培训班有哪些推荐_SEO 系统培训班包括哪些内容

SEO 系统培训班推荐及其内容详解 在当前数字化和信息化飞速发展的时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为每一个网站和企业不可或缺的一部分。SEO系统培训班不仅能帮助你了解SEO的基本原理&#xff0c;还能深入探讨其实际应用和最新技巧。本文将详细…...

GetQzonehistory终极指南:三步备份QQ空间所有历史说说

GetQzonehistory终极指南&#xff1a;三步备份QQ空间所有历史说说 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心那些记录着青春时光的QQ空间说说会随着时间流逝而消失&…...

Linux内核中的驱动程序开发高级话题

Linux内核中的驱动程序开发高级话题 引言 驱动程序是Linux内核中负责与硬件设备交互的重要组成部分&#xff0c;它为操作系统和硬件之间提供了桥梁。随着硬件技术的发展和系统复杂性的增加&#xff0c;驱动程序开发面临着越来越多的挑战。本文将深入探讨Linux内核中驱动程序开发…...

零基础入门全栈开发:跟快马AI一步步构建你的第一个用户登录应用

作为一个刚接触全栈开发的新手&#xff0c;构建用户登录系统听起来像一座难以攀登的高山。但通过InsCode(快马)平台的AI辅助&#xff0c;我居然在半小时内就完成了一个可运行的登录应用。下面分享我的学习过程&#xff0c;希望能帮到同样零基础的朋友。 项目结构设计 登录系统需…...

3步解锁AI编程助手全部潜力:Cursor Pro功能优化工具深度解析

3步解锁AI编程助手全部潜力&#xff1a;Cursor Pro功能优化工具深度解析 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached yo…...

从工业控制到智能家居:手把手教你根据项目需求选对RTOS(ThreadX vs. FreeRTOS实战指南)

从工业控制到智能家居&#xff1a;手把手教你根据项目需求选对RTOS&#xff08;ThreadX vs. FreeRTOS实战指南&#xff09; 在嵌入式系统开发中&#xff0c;选择合适的实时操作系统&#xff08;RTOS&#xff09;往往决定了项目的成败。面对工业控制的高精度需求或智能家居的成本…...

Aide让大师帮你改代码:专家级代码优化完全解析

Aide让大师帮你改代码&#xff1a;专家级代码优化完全解析 【免费下载链接】aide Conquer Any Code in VSCode: One-Click Comments, Conversions, UI-to-Code, and AI Batch Processing of Files! 在 VSCode 中征服任何代码&#xff1a;一键注释、转换、UI 图生成代码、AI 批量…...

别再只调PID了!用Mahony算法搞定IMU姿态解算(附C代码逐行解析)

Mahony算法实战&#xff1a;从IMU数据到稳定姿态解算的C语言实现 在嵌入式系统和机器人开发中&#xff0c;姿态解算一直是个令人头疼的问题。许多工程师习惯性地依赖PID控制器&#xff0c;却忽视了更优雅的数学解决方案。Mahony算法作为一种基于四元数的姿态融合算法&#xff0…...

完全掌控:揭秘G-Helper如何解决华硕笔记本散热与性能调节难题

完全掌控&#xff1a;揭秘G-Helper如何解决华硕笔记本散热与性能调节难题 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, St…...