c++中new和delete的用法
时间: 2023-12-01 17:02:16 浏览: 39
在C++中,new和delete是动态内存分配和释放的操作符。它们的用法如下:
### new操作符
new操作符用于在堆上动态分配内存,并返回指向该内存的指针。它的语法如下:
```c++
pointer_variable = new data_type;
```
其中,`pointer_variable`是一个指向数据类型为`data_type`的指针变量,它指向新分配的内存块。例如:
```c++
int *ptr = new int; // 动态分配一个int类型的内存块,并将其地址赋值给指针变量ptr
```
也可以使用new操作符动态分配数组,语法如下:
```c++
pointer_variable = new data_type[array_size];
```
其中,`array_size`是数组的大小。例如:
```c++
int *arr = new int[10]; // 动态分配一个包含10个int类型元素的数组,并将其地址赋值给指针变量arr
```
### delete操作符
delete操作符用于释放动态分配的内存,并将其返回给操作系统。它的语法如下:
```c++
delete pointer_variable;
```
其中,`pointer_variable`是要释放的内存块的指针。例如:
```c++
int *ptr = new int; // 动态分配一个int类型的内存块
delete ptr; // 释放该内存块
```
同样,也可以使用delete操作符释放动态分配的数组,语法如下:
```c++
delete[] pointer_variable;
```
例如:
```c++
int *arr = new int[10]; // 动态分配一个包含10个int类型元素的数组
delete[] arr; // 释放该数组
```
需要注意的是,使用new动态分配的内存必须使用delete释放,否则会造成内存泄漏。同时,释放已经被释放的内存也会导致程序崩溃,因此需要谨慎使用。