博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CPP-内存布局

Posted on 2023-03-12 22:12  乔55  阅读(28)  评论(0编辑  收藏  举报

内存布局详解

// 内核区

// 保存进程环境变量区

// 保存命令行参数区:int main(int argc,char** argv);


// 栈区
1. 由编译器分配和释放
2. 存放的值有:局部变量、形参、const修饰的局部常量



// 共享库+C标准库+系统IO函数


// 堆区


// 全局/静态区(读写段)
1. 该区的数据在程序结束后由OS管理和释放
2. 该区分段
   - .rodata段:只读数据段
   - .data段:已初始化的数据段
   - .bbs段:未初始化的数据段
3. 该区存的值有:字符串常量、const全局常量、静态变量、其他常量



// 文字常量区(只读段)


// 程序代码区(只读段)
1. 该区是共享的,对于频繁被执行的代码,只需保存一份在内存中即可
2. 该区是只读的,防止程序意外修改了它,故被设置为只读
3. 程序运行前就存在的区,用于存放二进制代码,由操作系统管理



// 0-4k保护区