【C++】new和delete

news2024/12/24 3:32:35

new是个运算符 使用:= new 类型(初始值);

malloc和new的区别:

1--new申请空间失败抛出异常,malloc返回指针
               ip(new(nothrow) Int(10))//不想它抛出异常
2--new调用构造函数
3--new可以重载(运算符)
4--new不用强制类型转换,应用比较简单,new申请内存无需指定内存大小


new 的4步

        1.计算大小2.malloc申请大小3.创建对象4.返回地址


delete

delete时被删除的空间被填充成0xdddddddd

        new申请数组时释放空间必须用delete[],如果只delete一个会出错。

        若new一个,却用了delete[]会导致不停的释放空间。

delete[]怎么知道删除多少个?

        当new一个数组时,new创建空间sizeof(Int)*n+4,4是放new指针的数量的位置
空间上下分别还多4个字节放在头,尾分别是上越界标记、下越界标记,填充为fdfdfdfd,
最上部份有头部信息指向前一个指针,和下一个指针会把分配的字节串成一个链,
delete[]时从数组头向前读4个字节,读取那个4字节知道要析构多少次。

申请一个对象,删除一组会死循环。
申请一个对象没有多的4个标记,用delete[]删会将上越界标记当要删除的个数,fdfdfd很大。

申请字节数越小,辅助空间越大,头部越界标记等占比越大。


内存泄漏的本质:

        丢失内存地址,找不回地址了,永远不会释放了。


ptmalloc

ptmalloc是内核中的内存管理,free的空间在此暂存一段时间,
申请字节有一个阈值,小于阈值直接在这里面找,减少对内核空间的扰动

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

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

相关文章

智慧闹钟

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 首先相对于传闹钟设置闹铃的方式,我想把这款创意闹钟设计成通过光照传感器来实现对闹钟的开启,更有效实现闹钟的自动化、智能化,不过为了防止误触带来闹钟的开启,需要对开启条件…

一起搭建我的世界服务器来实现公网远程联机教程「不需要公网IP」

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 转载自内…

第十七章_Redis布隆过滤器BloomFilter实战

是什么 一句话 由一个初值都为零的bit数组和多个哈希函数构成,用来快速判断集合中是否存在某个元素 设计思想 目的 减少内存占用 方式 不保存数据信息,只是在内存中做一个是否存在的标记flag 本质就是判断具体数据是否存在于一个大的集合中 备注 布…

好兄弟单身?这不得用python来帮他脱离苦海

明天什么节日 ?明天谁过节 ? 是你吗,还是你的朋友 ?如果是你的话,那咱就帮帮朋友,到年龄的咱就直接相亲呗 赠人玫瑰 手留余香 好人做到底,来让朋友体验体验恋爱的感觉~ 今天就带你们来爬爬相亲…

BoostSearch搜索引擎

今天讲的项目是基于C的Boost库的站内搜索引擎。因为Boost库内没有搜索关键字功能,所以在这里我们来手动实现一个这样的搜索引擎。当用户在输入框输入要查询的关键字后,就会快速查询出相关的 boost 库中的文档,弥补 boost 在线文档没有搜索功能…

C++进阶——mapset的使用

C进阶——map&set的使用 关联式容器 在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C11)等,这 些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存…

chatgpt赋能Python-python2的阶乘

Python2中的阶乘 Python是一种高级编程语言,它可以用来编写各种各样的程序。在Python中,阶乘是一个经常用到的数学概念,由于其强大的计算能力和易学易用的特点,Python成为了计算阶乘的一个很好的工具。在这篇文章中,我…

MySql 数据库的锁机制和原理

MySQL是一种流行的关系型数据库管理系统,广泛应用于各种Web应用程序和企业级应用程序中。在MySQL中,锁是一种用于控制并发访问的机制,它可以保证数据的一致性和完整性。本文将介绍MySQL的锁机制及原理,包括锁的类型、级别和实现原…

Idea配置moven

moven的下载与安装 https://maven.apache.org/download.cgi 解压到指定位置,配置环境变量 编辑系统变量Path,添加变量值:%MAVEN_HOME%\bin winr输入cmd输入 mvn -v 出现上述界面,则表示成功安装Maven 新建一个文件夹作为本地…

[入门必看]数据结构5.5:树与二叉树的应用

[入门必看]数据结构5.5:树与二叉树的应用 第五章 树与二叉树5.5 树与二叉树的应用知识总览5.5.1 哈夫曼树5.5.2_1 并查集5.5.2_2 并查集的进一步优化 5.5.1 哈夫曼树带权路径长度哈夫曼树的定义哈夫曼树的构造哈夫曼编码应用:英文字母频次 5.5.2_1 并查集…

MybatisPlus详解

文章目录 1.MyBatisPlus的介绍1.1 MybatisPlus的特性讲解1.2 支持的数据库1.3 MybatisPlus的日志 2.映射2.1 自动映射规则2.2 表映射2.3 字段映射2.4 字段失效2.5 视图属性 3. 条件构造器3.1 等值查询3.1.1 eq3.1.2 allEq3.1.3 ne 不等于 3.2 范围查询3.2.1 gt 大于3.2.2 ge 大…

[Nacos] Nacos Client重要Api (一)

Instance:实例,代表一个Nacos Client主机实例。ServiceInfo:微服务信息实例。其包含着一个Instance列表。NamingService: 该接口只有一个实现类,NacosNamingService。通过这个类的实例,可以完成Client与Ser…

数据结构篇六:二叉树

文章目录 前言1. 树的概念及结构1.1 树的概念1.2 树的相关概念1.3 树的结构 2. 二叉树的概念及结构2.1 二叉树的概念2.2 特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储结构 3. 二叉树的顺序结构及实现3.1 二叉树的顺序结构3.2 堆的概念及结构3.3 堆的实现3.3.1 堆的创建3.3.2 …

如何在命令提示符中备份Windows设备驱动程序

如果清理安装Windows,则需要为系统中的每个设备安装驱动程序。制造商可能不再提供其中一些设备驱动程序,或者你放错了制造商的驱动程序安装文件备份。 在进行干净安装之前备份设备驱动程序是个好主意,这样之后就可以根据需要轻松恢复这些驱动程序,我们可以按以下方法来备份…

跟着chatGPT学习:kubernetes中的Reflector、list-watcher、informer等概念

以下是我跟chatGPT学习kubernetes中Reflector、list-watcher、informer等的概念的过程 不敢保证chatGPT回答的百分之百准确。但是,确实帮助我了我理解! 最终学习的是下面的图, 1、在kubernetes中Reflector原理? 在Kubernetes…

PDF工具Adobe Arcrobat Pro DC下载安装教程

wx供重浩:创享日记 对话框发送:adobe 免费获取Adobe Arcrobat Pro DC安装包 Acrobat是一款PDF(Portable Document Format,便携式文档格式)编辑软件。借助它,您可以以PDF格式制作和保存你的文档 &#xff0c…

Oracle数据库服务器中了locked1勒索病毒的方式与破坏用友nchome配置文件方式

随着计算机技术的不断发展,网络安全问题也变得日益严峻。其中,勒索病毒就是一种非常危险的网络威胁。它可以通过加密受害者的文件或数据库,使其无法正常使用,然后向受害者勒索赎金以解密文件。而最近收到很多企业的求助&#xff0…

什么是语音识别的语音助手?

前言 语音助手已经成为现代生活中不可或缺的一部分。人们可以通过语音助手进行各种操作,如查询天气、播放音乐、发送短信等。语音助手的核心技术是语音识别。本文将详细介绍语音识别的语音助手。 语音识别的基本原理 语音识别是将语音信号转换为文本的技术。语音识…

Centos7升级gcc、g++版本

Centos7默认的 gcc版本是 4.8.5 默认使用yum install gcc安装出来的gcc版本也是是4.8.5。 1.首先查看自己的 gcc 版本 gcc -v g -v如果出现:bash: g: 未找到命令... 则安装g:遇到暂停时,输入y继续安装 yum install gcc-c然后输入&#xf…

38、Solr Integration(2)Install Solr

文章目录 38、Solr Integration(2)Install Solr下载启动创建Core填充数据搜索测试 38、Solr Integration(2)Install Solr 下载 进入Solr下载页面Solr Downloads - Apache Solr 下载需要的版本,这里下载最新版9.2.1&a…