1. 内存分布
【说明】
1. 栈又叫堆栈--非静态局部变量/函数参数/返回值等等,栈是向下增长的。
2. 内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。(Linux课程重点学习)
3. 堆用于程序运行时动态内存分配,堆是可以上增长的。
5. 代码段--可执行的代码/只读常量。
2. C++内存管理方式
a. new , delete 操作内置类型
代码举例
#include using namespace std; int main() { int* pa = new int; // 相当于在堆上开辟了一个 int 类型的空间 delete pa; int* pb = new int(10); //相当于在堆上开辟了一个 int 类型的空间并且初始化为 10 delete pb; int* pc = new int[10]; //相当于在堆上开辟了十个 int 类型的空间 delete[] pc; }
注意:
- 申请和释放单个元素的空间,使用new和delete操作符,申请和释放连续的空间,使用new[]和delete[]
- 要搭配使用(如:malloc 对应 free , new 对应 delete)
b. new和delete操作自定义类型
代码举例
#include using namespace std; class stack { public: stack() { cout