new和delete运算符是C++中动态内存管理的主要方式。
一、new的使用
new运算符可以在堆(heap)上动态分配内存:
int* p = new int; // 分配int大小内存
*p = 100; // 使用新分配的内存
new返回的是指向新分配对象的指针。
二、delete的使用
delete用于释放new分配的内存:
delete p; // 释放对象
p = nullptr; // 指针置空
需要保证每个new创建的对象都有配对的delete释放。
三、new初始化
new可以初始化内存为某个对象或值:
int* p = new int(100); // 初始化为100
四、数组new/delete
new可以分配对象数组,需要用[]标识:
int* arr = new int[10]; // 10个int数组
delete[] arr; // 释放数组
五、自定义new/delete
可以重载new/delete实现自定义内存管理。
六、智能指针
智能指针能更安全地管理堆内存。
正确使用new和delete是C++编程中非常重要的能力。它们给予程序更大的内存控制权。