C++ 内存管理是程序设计的核心环节,直接影响程序的性能、稳定性和安全性。C++ 不像 Java、Python 等语言有自动垃圾回收机制,而是需要开发者手动管理动态内存(或通过智能指针等机制自动管理)。
1、C++ 内存分区
内存区域存储内容生命周期管理方式栈 (Stack)函数参数、局部变量、函数返回值等自动管理。在作用域开始时分配,作用域结束时自动释放。编译器自动生成代码管理,效率极高。堆/自由存储区 (Heap/Free Store)动态分配的内存手动管理。从 new 开始到 delete 结束。程序员显式控制。分配和释放速度较慢,容易出错。全局/静态存储区 (Global/Static)全局变量、静态变量(static)、字面量整个程序运行时。在 main 开始前初始化,main 结束后销毁。编译器管理。常量区 (Constant)字符串字面量和其他常量整个程序运行时。编译器管理。通常不可修改。代码区 (Code/Text)程序的二进制代码(函数体)整个程序运行时。编译器管理。图示:
[code]+-----------------------+| 栈 (Stack) | |