在C++中,new和delete是用来动态分配和释放内存的操作符。
int* p = new int; // 分配一个int类型的内存空间,并将其地址赋给指针p
在这个例子中,new操作符会在堆上分配一块int类型大小的内存空间,并返回这块内存的地址。然后,将这个地址赋给指针p,使其指向这块内存空间。
如果需要动态分配一个数组,可以使用以下语法:
int* arr = new int[10]; // 分配一个包含10个int元素的数组
delete p; // 释放指针p所指向的内存空间
在这个例子中,delete操作符会释放指针p所指向的内存空间,并回收这块内存。
如果是释放动态分配的数组,需要使用delete[]操作符:
delete[] arr; // 释放动态分配的数组arr所占用的内存空间
需要注意的是,使用new操作符分配的内存必须使用相应的delete操作符进行释放,否则会导致内存泄漏。同时,delete操作符只能释放使用new操作符分配的内存,不能释放静态分配的内存或者栈上的内存。