在C++中使用new
和delete
实现内存的动态分配和内存释放。
int main()
{
int* p1 = new int[10];
int* p2 = new int(10);
delete []p1;
delete p2;
}
需要注意 new int[10]
与 new int(10)
是完全不同的。new int[10]
表示分配了10个int元素, new int(10)
表示分配了1个int,并且将其初始化为10。删除时对于new int[N]
分配的空间,需要用 delete []p
来释放。再举一个对象的例子:
#include<vector>
using namespce std;
int main()
{
vector<int>* p1 = new vector<int>[10]; //分配10个vector<int>
vector<int>* p2 = new vector<int>(10); //分配1个vector<int>, 用构造函数初始化
delete []p1;
delete p2;
}