C++ new和delete使用方法

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++编程中非常重要的能力。它们给予程序更大的内存控制权。