c++基础----new
c++基础----new
在C++中,new
是一个运算符,用于动态分配内存并返回指向该内存的指针。它可以用于创建单个对象、数组以及动态分配的对象。
下面是new
的几种常见用法:
- 动态分配单个对象:
int* ptr = new int; // 动态分配一个int类型的对象
上述代码将分配一个int
类型的内存空间,并将其地址赋给指针ptr
。
- 动态分配数组:
int* arr = new int[5]; // 动态分配一个包含5个int类型元素的数组
上述代码将分配一个包含5个int
类型元素的内存空间,并将其起始地址赋给指针arr
。
- 动态分配对象并调用构造函数:
class MyClass {
// 类定义
};
MyClass* obj = new MyClass(); // 动态分配一个MyClass对象,并调用默认构造函数
上述代码将分配一个MyClass
类型的内存空间,并调用默认构造函数来初始化对象。指针obj
将指向该对象。
需要注意的是,使用new
分配的内存空间在使用完毕后应该使用delete
运算符进行释放,以避免内存泄漏。例如,释放单个对象的内存可以使用delete
:
delete ptr; // 释放通过new分配的内存
释放数组的内存应使用delete[]
:
delete[] arr; // 释放通过new分配的数组内存
使用new
和delete
时需要注意内存管理,确保在不再需要动态分配的内存时进行适当的释放,以避免资源泄漏。
希望这个回答能够解答你的问题!如果你还有其他疑问,请随时提问。