2011-06-16 56 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()知道有多少物品。