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

内存管理

一.内存中的空间

1.栈:

局部变量

函数参数:调用函数所传入的参数(实参);

函数返回地址

临时对象

2.堆:

动态分配空间:单一的

动态数组:多个单一的

3.静态区:

全局变量

静态局部变量:在函数结束也不会销毁

静态成员

4.常量区:

字符串字面量

const修饰的常量

常量表达式 constexpr int SIZE = 10;

5.练习

globa在局部外面所以就是静态区 C;

同理 C;

虽然在函数内部但是被statatic修饰 C;

为局部变量 A;

依旧局部变量 A;

char2和数组一样A;

*char2其实就是a,那么肯定在A;

pchar3本身是存在栈的A;

*pchar3是指的是里面存的内容,这个存在常量区里面D;

ptr1和上面的类似,它本身是存在栈里面嘞A;

*ptr1是指里面的内容:是动态内存C;

二.. malloc/calloc/realloc的区别?

1.malloc

在堆上开辟一块空间

int* arr = (int*)malloc(5 * sizeof(int));

2.calloc

与malloc一样开辟一块空间,但是它会自动初话0;

int* arr = (int*)calloc(5, sizeof(int)); // 分配5个int,并初始化为0

3.realloc

当malloc或者callloc开辟的空间不够的时候就需要realloc来进行扩容

void* realloc(void* ptr, size_t new_size);

第一个参数是原来的空间,第二个是要扩的大小;

注意:一般来说会直接在原来空间的后面开辟,但是要是后面的空间大小不够了,就会开辟新的空间,原空间会被自动销毁。

三.new,delete

用malloc这些过于麻烦,并且当遇到自定义类写的时候就不可以使用,所以在C++中加入了新的开辟方式

1.内置类型

(1)new

new int[3]{1,2,3}

这是对于内置类型开辟的方法,和malloc比较会简单很多

(2)delet

2.自定义类型

(1)new

如图,最大的优势就是他可以自动调用构造函数进行初始化

开辟一个int类型的空间大小

开辟10个A类型的空间

此时初始化直接加

{1,2,3}这样就是隐式类型转化,1,2,3都被转换为A;

{A(1)}这样就是运用匿名对象

显然第一个更简单

(2).delet

注意:

在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc
free不会

(3)底层

new:开空间+构造函数;

new---》operator new---》调用malloc+抛异常

delete---》operatordelete——》调用free;

(4)区别

malloc/free为函数;

new/delete为操作符:

http://www.jsqmd.com/news/862042/

相关文章:

  • 【RAG】【retrievers08】基于Together.ai长上下文嵌入的混合检索
  • 4 类国产企业即时通讯平台推荐榜:如何为安全协同构建私有化底
  • AI 大模型技术架构演进与应用落地瓶颈分析
  • 西门子PLC对接须知:从通信到编程的实战指南
  • 用LLM从零搭3D小世界编辑器|小白也能搞定的AI Native开发实录
  • 【RHCA+】info命令(模块化的命令帮助文档)
  • 【RAG】【retrievers09】Pathway检索器:实时数据索引与检索
  • 适配多层级组织管理,科学运用 360 度反馈打造公平高效绩效文化
  • 2026年整箱榨菜厂家精选合集 - 行业平台推荐
  • 第2章:文档加载与智能分块——RAG的第一步
  • HTTP状态码与请求方式全解析【个人八股】
  • VGG16猫狗二分类
  • 工程实战:基于 GPIO 物理旁路极速部署机器人电梯调度系统的设计
  • 微波遥感杂谈五(微波辐射计)
  • 仪式感,从来与你无关
  • 慢驴效应(懒驴效应)
  • 3.url编码
  • Spec-Kit + Superpowers 实战:Go语言博客论坛系统的规范驱动开发
  • VisionPro 中 验证工具 ID Verfiction
  • 性价比高的国产PLM软件公司
  • 关于 ops-transformer 和它背后那套系统,几个我见过最常见的误解
  • 数采网关的应用与特点
  • 2025-2026年国内跨境电商TRO解冻机构:五大机构产品好的产品下架风险应对注意事项
  • 本科论文不用熬大夜?paperxie 智能写作,把万字初稿的时间从 30 天压到 3 小时
  • LeetCode 27 · 移除元素——双指针一次遍历搞定,O(n²) 暴力解瞬间不香了
  • 11.三层网络VXLAN
  • 【SSD】闪存1
  • VGG16猫狗二分类数据集处理
  • ops-transformer 基础设施性能实验报告:GE 融合边界与 Runtime 调度效率实测
  • 机器学习之逻辑回归算法