随笔 - 741  文章 - 0  评论 - 260  阅读 - 416万

深入理解C++内存管理机制

关于C++的内存处理,可分为三大块,分别是:

(一)内存管理机制  

(二)内存泄露处理

(三)内存回收机制

这篇文章将就(一)内存管理机制 进行深入探讨,如有错误欢迎大家指正。

C++的内存管理也可细分为

1. 程序内存布局

2. 内存的分配方式

3. 常见内存错误及对策

----------------------------------------------------------------------------

一. 程序内存布局

查了相关资料,明白了一点: memory layout of C++/C program is mostly dependent on the Operating System

So it's an opening question !

即便如此,当清楚C++程序的内存布局后,我们对变量的生存期、内存的管理,将会有更深刻的认识。

 

下面先概括介绍C++程序内存布局,再分别以windows和linux为示例。

1. C++程序内存布局

对于分段式内存而言,C++程序所涉及的内存区有:代码段、数据段、堆栈。(见图)

下面来依次分析C++程序中各个元素所对应的内存位置吧~

程序代码:存储在代码段,只读。

变量:

根据作用域,可分为:全局变量、局部变量

根据关键字,有:static静态变量、const常量

根据位置,有:类变量、函数形参

特殊变量:字面量

posted on   莫水千流  阅读(1697)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2018-03-12 Matplotlib绘图双纵坐标轴设置及控制设置时间格式
2018-03-12 https://www.cnblogs.com/xubing-613/p/5895948.html
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示