在没有指针的情况下随时获取额外的内存

use*_*233 1 c++ arrays pointers

在C++中,是否可以在程序运行时创建新数组?具体来说,假设我在类中有一个数据成员,并且变量的名称是数组,这是一个大小为10的数组.假设在运行时我想要一个更大的数组,我可以不使用指针吗?我可以有如下方法吗?

int[] expandCapacity(int currentCapacity) {
     int [] arr = new int[currentCapacity*2];
     currentCapacity*=2;
     return arr;
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能通过这样说来使用此方法来扩展当前数组的容量:

currentCapacity = 10;
array = expandCapacity (currentCapacity);
Run Code Online (Sandbox Code Playgroud)

如果这样做,就不需要使用指针.我觉得我在这里缺少一些至关重要的东西.如果你能指出我所缺少的东西,我将不胜感激.

Pup*_*ppy 8

不,这是不可能的.

然而,这样做自己就是纯粹的疯狂.使用std::vector<int>并让您的编译器实现者为您完成所有操作.