C/C++堆栈的区别

news/2024/7/20 13:44:37 标签: c++, 内存管理

1.一个由C/C++编译的程序占用的内存:
①栈区Stack
函数参数,局部变量等
②堆区Heap
malloc new 自动申请的内存
③全局区(静态区)Static

  1. BSS区 没有初始化或初始化位0的全局/静态变量
  2. Data区 初始化的全局/静态变量(非const)

④文字常量区Rodata
字符串、const修饰的变量
⑤程序代码区Text
函数体的二进制代码
2.堆和栈的区别
①申请方式:

栈空间
编译器自动分配和释放
堆空间
程序员分配和释放,若未释放,程序结束时OS回收。

②申请后系统的响应:


只要栈剩余空间大于所申请的空间,系统就为程序提供内存,否则报异常栈溢出

系统有一个记录空闲内存地址的链表,系统收到程序的申请,将遍历该链表,寻找第一个空间大于所申请的空间的堆结点,从空闲结点链表中删除该结点。
对于大多数系统,会在这块空间的首地址上记录申请的空间的大小,便于释放。

③申请空间大小限制:

:Windows下向低地址扩展,是一块连续的内存。大小确定。空间较小。

:向高地址扩展,是不连续的内存(链表存储内存空间地址。内存的大小受限于系统有效虚拟内存。空间较大,灵活。

④申请效率:


程序自动分配,速度较快。

程序员分配,速度较慢,容易产生内存碎片,但方便。
Windows下最好的方式使用VirtualAlloc

⑤存储的内容


函数调用时入栈顺序:函数的返回地址—— 函数形参(从右至左)——函数的局部变量(静态变量不入栈)


堆的头部用一个字节记录申请空间的大小。

⑥存取效率:

:较快
:较慢
在这里插入图片描述

注:借鉴了未知名作者文章,仅作本人复习用


http://www.niftyadmin.cn/n/1714745.html

相关文章

算法设计与分析速成

1.递归方程的求解迭代展开&#xff1a;迭代展开递归方程 注意&#xff1a;每一项内的值不能出现负数或0 比如T&#xff08;n-1&#xff09;则 n >1 i则 <n-1 换元迭代&#xff1a; 递归树表示&#xff1a;迭代展开的可视化表示 假设归纳&#xff1a;先假设&#xff0…

计算机视觉的基本面试题

1.描述图像大小&#xff0c;通道数&#xff1f; 长&#xff1a;331 宽&#xff1a;500 通道数&#xff1a;3 2.img[:,:,0]的含义 0&#xff0c;1&#xff0c;2表示图像的RGB通道 3. 如图的iread设置参数0的含义&#xff1f; 就是读取灰度图像 4. 如何让该图片颜色显示正常…

李沐 深度学习论文 解读 alexnet 笔记

李沐b站视频链接9年后重读深度学习奠基作之一&#xff1a;AlexNet【论文精读】_哔哩哔哩_bilibili-https://www.bilibili.com/video/BV1ih411J7Kz?spm_id_from333.999.0.0 主要记录行业大专家如何看待细分领域&#xff0c;跨领域工作的 1.alexnet 论文只是说明了效果很好 但是…

操作系统面试题:文件

文件系统&#xff1a;也是一种操作系统&#xff0c;也是一种文件 文件:信息在电脑里的储存形式&#xff0c;和数据库一样 现在都是流式存储 用户直接打开看不懂 但是程序可以直接可视化 文件保护的概念&#xff1f;其实指的是不同用户对文件不同的访问权限&#xff0c;起到的…

操作系统面试题:设备管理

管理什么设备&#xff1f; 除cpu,内存外的所有设备 怎么管理设备&#xff1f; 通过将物理设备映射成逻辑设备 为什么要把物理设备映射成逻辑设备&#xff1f; 物理设备是I/O系统中实际安装的设备&#xff0c;物理名通常是字符串或者ID 而逻辑设备的逻辑名比较好记 如何理解…

20h六级通关

单词的组成 形近字汇总 premise n.前提条件 ——> precondition n.前提条件——>conditional a. 有条件的 promise v/n 承诺——>promising a.有希望的 addict ——>indicate——>contradict——>predict addict sb be addicted to sth to是介词 s…

支持向量机设计思想和相关面试题

支持向量机从idea到优化方法的全流程 支持向量机的key idea? key idea1: 待分类点在决策边界法向量上的投影大于决策边界到原点的距离&#xff0c;则是正样本 key idea2: 如何求支持向量的间隔 选取一个正样本X 一个负样本X- 求X - X-在决策边界法向量上的投影长度 key idea3 …

凸优化面试题:凸集 凸函数 凸优化

为什么研究凸优化先要从凸集的性质开始&#xff1a; 凸函数图像的上方区域&#xff0c;一定是凸集&#xff1b; 假如一个函数上方是凸集&#xff0c;这个函数就是凸函数 如何用向量表示几何体 什么是凸包 包含凸集的最小集合 如何计算一个凸集的 凸包是什么&#xff1f;时间复…