美文网首页
内存四区模型

内存四区模型

作者: 四月的记忆 | 来源:发表于2017-05-01 02:44 被阅读0次
  • 内存四区分为:栈区、堆区、全局区、代码区
  • c/c++可以在临时区分配内存,用完后自动被编译器清理

函数1调用函数2,函数1称为主调函数函数2称为被调用函数

规则 详情
规则1:Main(主调函数)分配的内存(堆区,栈区、全局区)都可以在被调用函数里使用
规则2:在被调用函数里面分配的内存 1、如果在被调用函数里面的临时区(栈)分配内存,主调用函数是不能使用的。

如下列代码,在主调用函数是不能使用的,因其试图将临时分配的buf返回:

char * getstring3()
{ 
        char  buf[30]; 
        strcpy(buf, "abcde");
        return  buf;
}
  • 栈向下生长,堆向上生长
即:当给变量分配内存时,栈分配的地址越来越小,而堆分配的地址则越来越大

同时,heap,stack的生长方向与内存存放方向是两个不同的概念

一个简单的例子是,int a[10], 则,a[2]的内存地址肯定是大于a[0]的内存地址的

相关文章

  • 内存四区模型

    操作系统把C代码分成四个区: (1)堆区(heap):一般由程序员分配释放(动态内存申请与释放),若程序员不释放,...

  • 内存四区模型

    内存四区分为:栈区、堆区、全局区、代码区 c/c++可以在临时区分配内存,用完后自动被编译器清理 函数1调用函数2...

  • 内存四区模型

    全局区 全局区分为:全局变量,静态变量,文字常量区 栈区 堆区 静态局部变量 栈的生长方向

  • 音视频开发之旅(20) 指针、内存模型、引用

    目录 指针 内存模型和四区使用 引用 资料 收获 一、指针 1.1 什么是指针? 指针本质上是地址,用于指向具体的...

  • NDK_03 C/C++的内存四区模型

    导语:内存四区模型是非常重要的一个知识,只有学会从编译器的角度去了解内存是如何分配的,在遇到问题的时候,才能更好的...

  • 内存四区

    stack(栈区):存放局部变量、函数参数、返回数据和返回地址,系统自动分配释放。栈顶从高地址向低地址的方向生长,...

  • Flink JobManager | TaskManager内存

    Flink内存模型分析 JobManager内存模型 TaskManager内存模型 内存模型分析 Flink使用...

  • 图解jvm--(四)内存模型

    内存模型 java 内存模型 很多人将【java 内存结构】与【java 内存模型】傻傻分不清,【java 内存模...

  • JVM内存模型(jvm 入门篇)

    概述 jvm 入门篇,想要学习jvm,必须先得了解JVM内存模型,JVM内存模型,JVM内存模型,JVM内存模型,...

  • java内存模型

    1.内存模型(JMM) 1.1什么是Java内存模型? Java内存模型将内存分为主内存和工作内存两大部分;主内存...

网友评论

      本文标题:内存四区模型

      本文链接:https://www.haomeiwen.com/subject/qikftxtx.html