有点像新东西,但分配了2个房间

Something like new but to allocate 2 rooms

本文关键字:分配 2个 房间 新东西      更新时间:2023-10-16

我有一个成员函数,它必须创建其类的两个对象(在内存中)。所以我必须返回一个指针"p",我想通过p[0]和p[1]访问对象。我只知道关键字new,为一个对象分配内存。是否有类似的方法为2个对象分配连续内存?我也可以通过使用关键字new两次创建一个2单元格数组(两个指针),但我更喜欢一个更简单的解决方案(p[0]和p[1])。

 MyClass * p = new MyClass[2];

,记得用:

delete[] p;

使用std::vector,它将为您处理内存管理。

#include <vector>
// This will dynamically allocate an array of 2 instances
// of you MyClass type
std::vector<MyClass> classes(2);
// now you have classes[0] and classes[1]

std::vector是可调整大小的,并且将为您处理所有内存管理开销(在这种情况下您不需要调用newdelete)。