随时随地获取额外内存,无需指针

Getting additional memory on the go without pointers

本文关键字:指针 内存 获取 随时随地      更新时间:2023-10-16

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

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

为什么我不能使用此方法扩展当前阵列的容量,方法是说:

currentCapacity = 10;
array = expandCapacity (currentCapacity);

如果这有效,则无需使用指针。我觉得我在这里错过了一些关键的东西。如果您能指出我缺少什么,我将不胜感激。

不,这是不可能的。

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

例如,

你应该像向量一样使用 STL 容器。

如果这有效,则无需使用指针。我觉得我是 这里缺少一些关键的东西。如果您能指出,我将不胜感激 我错过了什么。

指针的用途远不止于此。我建议找一个好的 c++ 教程(查看此处的 c++ 常见问题解答以获取更多信息)。