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

时间:2012-06-18 15:31:15

标签: c++ arrays pointers

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

int[] expandCapacity(int currentCapacity) {
     int [] arr = new int[currentCapacity*2];
     currentCapacity*=2;
     return arr;
}

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

currentCapacity = 10;
array = expandCapacity (currentCapacity);

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

2 个答案:

答案 0 :(得分:8)

不,这是不可能的。

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

答案 1 :(得分:3)

你应该像vector这样的STL容器。

  

如果这样可行,就不需要使用指针。我觉得我是   在这里缺少一些关键如果你能指出我,我会很感激   我错过了什么。

指针比这更有用。我建议找一个好的c ++教程(在这里查看c ++ FAQ了解更多信息)。