C++通过new 和 delete 进行动态内存管理。
new 和 delete 进行动态管理对象。
new[] 和 delete[] 进行动态管理对象数组。
void test()
{
int * p1 = new int; //动态分配四个字节(1个int)的空间单个数据
int * p2 = new int (2); //动态分配四个字节(1个int)的空间并初始化为3
int * p3 = new int[4]; //动态分配16个字节(4个int),
delete p1;
delete p2;
delete[] p3;
}
注意 malloc/free ,new/delete, new[]/delete[]一定要匹配使用,否则可能出现内存泄漏。
- 栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下生长的。
- 内存映射段是高效的IO映射方式,用于装在一个共享的动态的内存库,用户使用