1

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

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

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

currentCapacity = 10;
array = expandCapacity (currentCapacity);

如果这可行,则无需使用指针。我觉得我在这里遗漏了一些重要的东西。如果您能指出我所缺少的,我将不胜感激。

4

2 回答 2

8

不,这是完全不可能的。

但是,自己这样做是纯粹的精神错乱。使用std::vector<int>并让您的编译器实现者为您完成所有工作。

于 2012-06-18T15:33:36.500 回答
3

例如,您应该使用像矢量这样的 STL 容器。

如果这可行,则无需使用指针。我觉得我在这里遗漏了一些重要的东西。如果您能指出我所缺少的,我将不胜感激。

指针的用处远不止于此。我建议找到一个好的 c++ 教程(查看 c++ FAQ以获取更多信息)。

于 2012-06-18T15:33:54.253 回答