博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存四区模型
阅读量:6093 次
发布时间:2019-06-20

本文共 406 字,大约阅读时间需要 1 分钟。

内存可以先粗略的分为四个区,分别是代码区,数据区,栈区和堆区。其中,数据区可以分为全局区/静态区、常量区。

数据区内容的生命周期从程序开始到程序终止;栈区的内容从函数左括号开始,到右括号为止,函数结束后,内存自动释放回收;堆区的内容由程序员自己开辟,手动释放。

代码区

程序指令

数据区:(全局区/静态区/常量区)

初始化的数据:

全局变量,静态全局变量,静态局部变量

未初始化的数据:

未初始化的全局变量,静态全局变量,静态局部变量,默认值均为0

常量

字符串常量

栈区

变量、数组

结构体、指针

枚举、函数形参

堆区:大型数据,程序员自己开辟内存存放的数据

 

 栈区向下生长,数值逐渐减小;堆区向上生长,数值逐渐增大。死循环不会使程序崩掉(占满内存),但是会占满CPU,递归会导致程序崩溃,导致栈溢出。

转载于:https://www.cnblogs.com/qinguoyi/p/10154081.html

你可能感兴趣的文章
Compiler
查看>>
Oracle ——如何读执行计划概述
查看>>
时间处理 c++ 获取当前系统时间 1. 时间戳形式 2. char *形式[转]
查看>>
C/C++学习之static_cast和dynamic_cast、reinterpret_cast
查看>>
语法:MySQL中INSERT INTO SELECT的使用
查看>>
[C/C++] ccpuid:CPUID信息模块 V1.03版,改进mmx/sse指令可用性检查(使用signal、setjmp,支持纯C)、修正AVX检查Bug...
查看>>
Tomcat加载servlet类文件 -我们到底能走多远系列(9)
查看>>
LINQ 学习笔记9
查看>>
<Codeforces Round #147 (Div. 2)>A. Free Cash(水题)
查看>>
转 OFBiz财务模型-金融账户
查看>>
一个男人关心的东西 决定了他的层次
查看>>
2013年1月第1个周末
查看>>
jstree的数据后台生成
查看>>
文本文件与二进制文件的比较
查看>>
索引 - 聚集索引设计指南
查看>>
dom4j使用selectSingleNode方法报错
查看>>
搜狗垂搜笔试
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>