C++栈区、堆区、全局静态区、代码区的介绍

2023-11-15

示例代码

#include <iostream>
// 全局变量 存储在静态区
int IntNum = 0;
// 静态全局变量 存储在静态区
static int StaInitNum = 0;

int main(int argc, char **argv)
{
    // 静态局部变量 存储在静态区
    static int MainStaInitNum = 0;
    // 局部变量 存储在栈区
    char c_str[] = "hello world";
    // 指针变量 存储在栈区
    char *p = c_str;
    // 指针变量 通过new申请的动态内存存储在堆区
    char *p_str = new char[10];
    // 执政变量 存储在栈区 ”hello world“存储在常量区
    char *_str = "hello world";

    // 释放申请的动态内存
    delete[] p_str;
    return 0;
}

代码区:存放程序代码,在计算机中以二进制方式保存。

栈区:存放函数内的局部变量,形参和函数返回值,栈区的数据由操作系统分配也是由操作系统自动释放。

堆:使用malloc和new申请的内存块,如果我们不手动释放,在程序结束后系统会自动回收,一般在编写程序的过程中需要手动释放申请的内存(free和delete)否则可能会造成内存泄漏问题。

全局/静态存储区:全局变量和静态变量被分配到同一块内存中,在C语言中还分:在未初始化的全局变量和静态变量、已初始化的全局变量和静态变量。但是在C++中没有这个区分,他们共同占用同一块内存区。

常量存储区:存放常量,不允许修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++栈区、堆区、全局静态区、代码区的介绍 的相关文章

随机推荐

  • Windows与Mac中idea常用快捷键转换

    从 Windows 过度到 Mac 必备快捷键对照表 Mac 键盘符号说明 Command Shift Caps Lock Option Control Return Enter Delete 向前删除键 Fn Delete 上箭头 下箭头
  • Xlua学习笔记

    本篇笔记是记录 游戏热更新实战案例 基于xLua 的学习笔记 1 Xlua的环境搭建 1 导入Xlua插件 上Github上下载Xlua插件 将Xlua解压 将Asset下的所有文件拷贝到当前项目目录Asset下 拷贝与Asset同级目录下
  • 关于STM32L系列MCU adc 测地信号不为0

    关于STM32L011系列MCU adc 测地信号不为0 Analog模拟adc测试为40或更大 如图所示 之前请教很多工程师说 adc 引脚没有接到真正的地信号 AD IO 一般 RC 过后到IO或者其它干扰影响 但最终也没有解决 尝试新
  • 框架——Mybatis中resultType和resultMap的区别

    一 区别简述 1 Mybatis的结果集是通过反射实现的 2 MyBatis中在查询进行select映射的时候 返回类型可以用resultType 也可以用resultMap resultType是直接表示返回类型 基础类型 包装类型 而r
  • 数据结构---填数字

    填数字 JAVA实现 C 实现 JAVA实现 public static int myFindABC int total 0 int sum 0 HashMap
  • 大规模部署lxc容器遇到的若干问题

    线程数控制 启动线程过多会导致资源不足引发的lxc start命令无法执行问题 到致大量容器只执行了lxc copy 而无法真正运行 具体情况应视服务器硬件条件 cpu 内存 在本项目部署中主要瓶颈在于cpu 以及当前服务器状态 当前主要是
  • Nginx Proxy Manger-反向代理神器-Docker一键部署

    Nginx Proxy Manger 反向代理神器 利用Docker实现一键部署 Lunix发行版 推荐使用Debian 10 或者 Ubuntu 20 04或更高版本 Nginx Proxy Manger 是一个反向代理管理系统 它基于
  • vuex存储保存数据、使用数据,超详细解说

    之前的项目中使用过一次vuex搭配localstorage存储token 使token持久化保存 好长时间不用 又把vuex的使用忘的一干二净 重新百度搜索 自己尝试后实现需求 我的业务需求是父页面中嵌套了一个子页面 父页面的一个卡片列表区
  • k8s job机制初探

    博客作为学习笔记记录 若有理解或表述错误 欢迎指出 k8s的job机制 k8s官网参考 k8s的job是用来执行一次性任务的一类资源 相关的还有cronjob 用于执行以下周期性任务 部署job之后 k8s会起对应pod 当pod的状态为f
  • Python- 文件处理

    os path splitext file 0 获取文件名 file endswith c 用于检查一个文件名 存储在变量 file 中 是否以 c 结尾 如果是这样 那么它可能是一个 C 语言源代码文件 接下来 os path split
  • float类型做比较

    public class tst private float a 3 0f private float b 0 0f private float c 4 0f private float d 0 0f public void floatCo
  • 软件工程专业如何论文选题?

    Ladies and gentlemen 写论文可谓是读书阶段最为关键的一环 你们是否还记得被论文折磨的日日夜夜 最可怕的不是导师催促你时铁青的面容 而是眼看着DDL Deadline 来临 你的论文题目却让你一筹莫展 作为一个硕士毕业没多
  • 下载和编译 Chrome 时遇到的问题

    下载代码前最基本的代理设置 https blog csdn net siyu77 article details 50916320 对于 ShadowSocks 代理 https proxy 也要设置成 http localhost 108
  • QtextBrowser打印数据不能实时显示的问题

    在编写程序的时候需要从外部读取txt文件的数据打印到QtextBrowser文本框中 但是发现数据是卡一下然后一起出来 而不是一行一行地实时显示 编程环境是vs2017编译器下的集合qt插件的C 界面编程 原来的程序段如下 ui datao
  • 每日十道算法

    最近发现了一个挺厉害的人工智能学习网站 内容通俗易懂 风趣幽默 感兴趣的可以点击此链接进行查看 床长人工智能教程 废话不多说 请看正文 1 两个数组的交集 给定两个数组 编写一个函数来计算它们的交集 时间复杂度 O n 空间复杂度 O n
  • sqoop的在hadoop上的安装和使用

    1 解压安装包 tar zxvf sqoop 1 4 6 cdh5 14 2 tar gz 解压文件夹 mv sqoop 1 4 6 cdh5 14 2 soft sqoop146 移动文件夹到文件目录下 cd opt soft sqoop
  • python爬虫遇到 raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool

    python爬虫遇到ssl证书报错 host port 443 Max retries exceeded with url Caused by SSLError SSLCertVerificationError 1 SSL CERTIFIC
  • Lua调用C#的底层原理

    前言 Lua是一种轻量级的脚本语言 被广泛应用于游戏开发 嵌入式系统和其他需要快速开发和灵活性的领域 而C 是一种面向对象的编程语言 是微软开发的 NET平台的一部分 主要用于Windows应用程序开发 对啦 这里有个游戏开发交流小组里面聚
  • 新版nonebot,go-cqhttp搭建qq机器人保姆级教程

    前言 前段时间QQ进行了更新 所以导致了非手表协议扫码登陆报错的问题 不过好在大佬已经推出rc5版本的go cqhttp 解决了这一头疼的问题 在开始之前 我需要说明一下 本文章是针对没有经验和基础的用户 所以说篇幅可能会长一点 开始 1
  • C++栈区、堆区、全局静态区、代码区的介绍

    示例代码 include