首页 > 系统相关 >c++ 程序的内存分配

c++ 程序的内存分配

时间:2023-12-08 20:13:04浏览次数:32  
标签:常量 代码 程序 c++ 区域 存放 内存

C++程序在执行时,将内存大致分为以下几个区域:

  1. 栈:系统自动分配的空间,只要不特殊声明,就定义在栈区,函数的区域也在栈上。栈是向下增长的。(const 在栈里)
    堆:使用动态内存分配的方式可以申请堆空间,用完要手动释放。new malloc
    全局区:全局变量、静态变量(static),生命周期是程序整个运行过程中。
    常量区:代码中的数字,字符等常量,例如’a’,—1.2等
    代码区:存放可执行代码,避免频繁的读硬盘

这四个区域的意义在于,不同的区域存放不同的数据,赋予不同的生命周期,给程序员更大的操作空间。

在程序编译后,生成了.exe可执行文件,未执行该程序前分为两个区域:

  • 代码区:存放CPU执行的机器码。
  • 数据区:存放已初始化的全局和静态变量,常量数据(如字符串常量)。

 

 

标签:常量,代码,程序,c++,区域,存放,内存
From: https://www.cnblogs.com/whcjob/p/17888910.html

相关文章

  • C/C++ 实现动态资源文件释放
    当我们开发Windows应用程序时,通常会涉及到使用资源(Resource)的情况。资源可以包括图标、位图、字符串等,它们以二进制形式嵌入到可执行文件中。在某些情况下,我们可能需要从可执行文件中提取自定义资源并保存为独立的文件。在这篇博客文章中,我们将讨论如何使用C++和WinAPI实现这个目......
  • 《计算机程序设计艺术》读后感(1)
    最近读了《计算机程序设计艺术》这本书翻开这本书,第一页是高德纳专门为中国读者写的序,里面写到了高德纳这个名字是他1977年访问中国前夕姚期智的夫人姚储枫给他起的中文名。他也希望中国读者能记住他的这个中文名。最后还写了一段激励读者钻研计算机程序设计的话。这个序言一下子......
  • uniapp 微信小程序使用canvas
    微信小程序基础库大于2.9.0后,canvas(画布)支持一套新Canvas2D接口(需指定type属性),同时支持同层渲染,原有接口不再维护。在这种情况下使用原有接口会报错,报错例如:1、使用ctx.draw()会报错:drawisnotafunction,原因:新版Canvas2D接口没有draw方法2、使用ctx.setfillStyle......
  • 记录--优雅解决uniapp微信小程序右上角胶囊菜单覆盖问题
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言大家好,今天聊一下在做uniapp多端适配项目,需要用到自定义导航时,如何解决状态栏塌陷及导航栏安全区域多端适配问题,下文只针对H5、APP、微信小程序三端进行适配,通过封装一个通用高阶组件包裹自定义导航栏内容,主......
  • 栈内存和堆内存概念、内存逃逸分析
    为了让程序员更好地专注于业务代码的实现,Go语言增加了垃圾回收机制,自动地回收不再使用的内存。Go语言有两部分内存空间:栈内存和堆内存。1.栈内存栈只允许往线性表的一端放入数据,之后在这一端取出数据,按照后进先出(LIFO,LastInFirstOut)的顺序,如图所示。往栈中放入元素......
  • 多开工具对应用程序性能的影响与优化
    多开工具对应用程序性能的影响与优化摘要:随着计算机技术的不断发展,多开工具逐渐成为一种常见的软件应用。然而,使用多开工具可能会对应用程序的性能产生一定的影响。本文将探讨多开工具对应用程序性能的影响,并提供一些优化方法,以改善应用程序在多开环境下的表现。引言:多开工具......
  • JetBrains CLion 2023.3 (macOS, Linux, Windows) - C 和 C++ 跨平台 IDE
    JetBrainsCLion2023.3(macOS,Linux,Windows)-C和C++跨平台IDE请访问原文链接:https://sysin.org/blog/jb-clion-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsCLion-C和C++跨平台IDECLion2022现已发布。查看最新变化用于强大语......
  • 递归时间复杂度---黑马程序员
    1.主定理求时间复杂度  展开求时间复杂度 ......
  • C++(智能指针)
    在C++中,智能指针是一种用于管理动态分配内存的智能化工具。它们提供了对动态分配资源的自动管理,以减少内存泄漏和资源泄漏的风险。C++标准库提供了两种主要的智能指针类型:std::shared_ptr和std::unique_ptr。以下是这两种智能指针的基本解释:1.std::shared_ptr:std::shared_......
  • ACPM高效C++组件管理让音视频终端SDK性能更好、稳定性更高
    本专栏将分享阿里云视频云MediaBox系列技术文章,深度剖析音视频开发利器的技术架构、技术性能、开发能效和最佳实践,一起开启音视频的开发之旅。本文为MediaBox技术架构篇,重点从 ACPM介绍、技术架构以及高效管理等方面,介绍如何通过MediaBoxACPM的高效组件管理,来提升音视频终端SDK......