查找动态分配的阵列的大小

时间:2011-06-16 09:20:19

标签: c++ memory-management

一个简单的问题,虽然我无法在更快的时间内找到答案。

我通过'new'关键字使用动态分配来为数组分配内存块,如

int *array = new int[size]; //The Size is got by some logic

现在从逻辑的长远来看,我需要解析这个数组,以便我需要得到/计算这个数组的大小。

我在这里毫无头绪。请帮帮我。

提前致谢:)

1 个答案:

答案 0 :(得分:8)

您需要将分配大小保存在单独的变量中,以便在完成new后知道它是什么。

好的一面--C ++为您提供了一个名为std::vector的工具,可以在不使用new并保持大小(并且不受大小限制)的情况下为您解决问题。

因此,如果您需要预先分配可以使用的大小:

vector<int> array(size);

但通常你只是声明

vector<int> array;

然后继续填写,并查询array.size()以了解有多少项目。