new
和 delete
是C++中用于动态分配和释放内存的运算符。它们的用法如下:
使用
new
运算符分配内存:// 分配一个整数的内存空间 int* ptr = new int; // 分配一个整数数组的内存空间(指定数组大小) int* arr = new int[10];
new
运算符用于在堆上动态分配内存空间,并返回指向该内存的指针。可以用于分配单个对象或数组。使用
delete
运算符释放内存:// 释放单个对象的内存 delete ptr; // 释放数组的内存 delete[] arr;
delete
运算符用于释放之前使用new
分配的内存。请注意,如果使用new[]
分配了数组,必须使用delete[]
来释放,否则会导致未定义行为。
需要注意的是,使用 new
和 delete
分配和释放内存时,程序员负责管理内存的分配和释放,这可能导致内存泄漏或释放已释放内存的问题。因此,C++引入了智能指针(如 std::shared_ptr
和 std::unique_ptr
)以更安全和自动化地管理内存。