在C++中,“new”是一个运算符,用于在堆上动态分配内存。以下是“new”的一些基本用法:
分配单个对象的内存:
int* p = new int;
这会在堆上分配一个int大小的内存块,并将该内存块的地址赋值给指针p。
分配数组的内存
int* arr = new int[10];
这会在堆上分配一个包含10个int的内存块,并将该内存块的地址赋值给指针arr。
分配类对象的内存:
MyClass* obj = new MyClass;
这会在堆上分配一个MyClass大小的内存块,并将该内存块的地址赋值给指针obj。
释放内存:
当使用“new”运算符动态分配内存时,必须使用“delete”运算符释放这些内存。如果使用“delete”运算符释放一个指针,则必须确保该指针不是空指针。
delete p; // 释放单个对象的内存
delete[] arr; // 释放数组的内存
delete obj; // 释放类对象的内存
注意,“delete”只能用于释放通过“new”分配的内存。对于在栈上分配的内存或已经自动释放的内存,不能使用“delete”。