内存四区模型
- 内存四区分为:栈区、堆区、全局区、代码区
- c/c++可以在临时区分配内存,用完后自动被编译器清理
规则 | 详情 |
---|---|
规则1:Main(主调函数)分配的内存(堆区,栈区、全局区)都可以在被调用函数里使用 | |
规则2:在被调用函数里面分配的内存 | 1、如果在被调用函数里面的临时区(栈)分配内存,主调用函数是不能使用的。 |
char * getstring3()
{
charbuf[30];
strcpy(buf, "abcde");
returnbuf;
}
- 栈向下生长,堆向上生长
即:当给变量分配内存时,栈分配的地址越来越小,而堆分配的地址则越来越大
同时,heap,stack的生长方向与内存存放方向是两个不同的概念
一个简单的例子是,int a[10], 则,a[2]的内存地址肯定是大于a[0]的内存地址的
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Java内存泄漏分析系列之二(jstack生成的Thread|Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析)
- Flutter的ListView
- 一般模型化关系——从模型是什么到如何起作用的基本答案
- iOS内存对齐原则
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- 旅途碎碎念
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 内存管理概念与原理以及解决办法
- 时间管理的任务模型