博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS的进阶之路
阅读量:4146 次
发布时间:2019-05-25

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

作为一个程序员,可能你每天的任务只是按照产品经理的设计完成不同的界面,或许在这样年复一日的工作中,你的技术得到了提升,但却缺少对自己知识系统的总结,这样的进步无疑是缓慢的。博主本人会从一些基本的知识点持续更新相关的文章,期待你的关注。

作为一个程序员对于进程内存布局要耳熟能详:

栈区

1.系统分配,系统释放
2.代码执行过程中分配,释放
3.普通局部变量,形式参数(函数形参)
4.生存期:复合语句或函数开始运行到复合或函数运行结束
5.作用域:复合语句或函数内
6.未初始化时为野值
7.先进后出
8.空间有限
堆区
1.程序员自己分配,释放
2.代码执行过程中分配,释放
3.自由存储,空间很大
4.小心内存泄漏
5.生存期:分配代码开始到释放代码结束
6.作用域:视首地址持有者属性而定
7.无法初始化,开始为野值(使用memset)。
malloc free memcpy
数据区
1.系统分配,系统释放
2.未初始化时被置为0值
3.程序加载到内存时分配,程序运行结束后释放
4.全局变量,静态局部变量,字符串常量(只读)
5.生存期:整个程序运行期
6.作用域:视变量属性而定
代码区
1.系统分配,系统释放
2.程序加载到内存时分配,程序运行结束后释放
3.只读,可执行
4.生存期:整个程序运行期
5.函数名所代表的代码段首地址所在地

函数名代表该函数体的二进制指令,所在内存空间的首地址

转载地址:http://jwcti.baihongyu.com/

你可能感兴趣的文章
Objective-C 基础入门(一)
查看>>
Flutter Boost的router管理
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
VUe+webpack构建单页router应用(一)
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
Mysql复制表以及复制数据库
查看>>
Linux分区方案
查看>>
如何使用 systemd 中的定时器
查看>>
git命令速查表
查看>>
linux进程监控和自动重启的简单实现
查看>>
OpenFeign学习(三):OpenFeign配置生成代理对象
查看>>
OpenFeign学习(四):OpenFeign的方法同步请求执行
查看>>