码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【C++】堆栈的使用 | 堆栈的大小 | 动静态分配问题


    栈和堆的使用:
    1.栈区先定义的变量放到栈底,地址高,后定义的变量放到栈顶,地址低,因此是向下生长的,堆区则相反
    2.栈区主要存在局部变量和函数参数,其空间的管理由编译器自动完成,无需手动控制,堆区是自己申请的空间,在不需 要时需要手动释放
    3.频繁的申请空间和释放空间,容易造成内存碎片,甚至内存泄漏,栈区由于是自动管理,不存在此问题
    栈和堆的大小问题:
    1.堆内存的大小仅取决于操作系统(看操作系统把多少内存给堆)。栈内存的空间一般很小,由系统直接分配
    2.32位系统下,最大的访问内存空间为4G,(232-1个地址为4G)所以不可能把所有的内存空间当做堆内存使用,只给堆一部分使用
    动静态分配:
    动态分配:动态分配指的是程序执行过程中动态地分配或者回收存储空间的分配内存的方法
    静态分配:静态分配是编译器完成的,比如局部变量的分配。(在编译阶段就完成了)
    动静态分配的不同:
    1.时间:静态分配发生在程序编译和链接的时候。动态分配发生在程序调入和执行的时候
    2.空间:
      1.堆都是动态分配的,没有静态分配的堆
      2.栈有两种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配可调用_alloc()这个函数动态申请栈内存。但是_alloc()函数申请的栈空间不能用free或者delete进行释放!因为栈的动态分配由编译器释放,无需我们手动实现!

  • 相关阅读:
    【人工智能】知识图谱
    在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文
    如何在 Mac 上成功轻松地恢复 Excel 文件
    idea远程debug
    win10下使用composer安装依赖ssl报错处理
    JAVA_多线程的实现方式
    c#中上传超过30mb的文件,接口一直报404,小于30mb的却可以上传成功
    PMP模拟题 | 每日一练,快速提分
    Friend.tech(FT):社交媒体金融的未来,真的如此美好吗?
    高斯扩散过程
  • 原文地址:https://blog.csdn.net/K_04_10/article/details/127568292
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号