时间:2025-08-06 14:35
人气:
作者:admin
内存分区是操作系统管理物理内存的一种方式,通常分为多个逻辑区域,用于存储不同类型的数据或支持不同功能。常见分区包括代码区、全局/静态区、栈区、堆区等。不同操作系统的实现可能略有差异,但核心逻辑相似。
代码区存放可执行程序的机器指令,通常是只读的,防止程序意外修改指令。该区域在程序启动时由操作系统加载,大小固定。
全局/静态区分为两部分:
int global_var = 10; // 存储在.data段
static int static_var; // 存储在.bss段
栈区用于函数调用时保存局部变量、参数和返回地址,由编译器自动管理。内存分配和释放遵循“后进先出”原则。
void func() {
int local_var = 5; // 存储在栈区
}
堆区用于动态内存分配,由程序员手动管理(如通过malloc、free等)。空间较大但需要防止内存泄漏或碎片化。
int *ptr = (int*)malloc(10 * sizeof(int)); // 从堆区分配内存
free(ptr); // 释放内存
const char* str = "Hello"; // 字符串常量存储在常量区
注意事项