2011-06-16 43 views
0

一个简单的问题,尽管我无法在更快的时间内找到一个问题。查找动态分配数组的大小

我使用过的内存用于数组chunck分配“新”的关键字动态分配,

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

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

我在这里无能为力。请帮助我。

感谢提前:)

+0

这是真的不清楚你要求什么。如何计算大小的值?这取决于我们有更多的上下文。 – Elemental 2011-06-16 09:24:42

+0

我正在寻找一些逻辑或方法来获得数组的大小,没有它可以容纳的元素。 – 2011-06-16 09:29:04

+0

可能的重复[有什么方法可以通过编程来确定C++数组的大小吗?如果没有,为什么?](http://stackoverflow.com/questions/197839/is-there-any-way-to-determine-the-size-of-a-c-array-programmatically-and-if-no) – 2011-06-16 09:45:10

回答

8

你需要保持分配大小在一个单独的可变知道它是什么,你正在与new完成后。

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

所以如果你需要预先分配的大小,你可以使用:

vector<int> array(size); 

但通常你只需要声明

vector<int> array; 

,然后去和填充它,并查询array.size()知道有多少物品。