C语言编写的程序占用内存 自上而下分为栈 堆 数据段 代码段
栈:由编译器自动释放 存放函数的参数值(指针由右到左) 局部的值,返回地址 等操作方式类是数据结构的栈
堆 :一般由程序员分配和释放 (malloc free)不释放可能会造成内存泄漏 程序结束时 也可能由操作系统释放
数据段:存放全局变量,静态变量 常数。数据段可分为普通数据段(可读可写),只读数据端(存放静态初始化变量或常量),BSS(未初始数据段)
代码段,
堆的申请通过链表获取不连续的物理地址
C语言编写的程序占用内存 自上而下分为栈 堆 数据段 代码段
栈:由编译器自动释放 存放函数的参数值(指针由右到左) 局部的值,返回地址 等操作方式类是数据结构的栈
堆 :一般由程序员分配和释放 (malloc free)不释放可能会造成内存泄漏 程序结束时 也可能由操作系统释放
数据段:存放全局变量,静态变量 常数。数据段可分为普通数据段(可读可写),只读数据端(存放静态初始化变量或常量),BSS(未初始数据段)
代码段,
堆的申请通过链表获取不连续的物理地址