2015-08-23 40 views
-1

我想在C++中獲得整數數組的大小。如果一個方法需要一個int *我如何獲得該值的大小?如何獲得int *的大小?

int myMethod(int* values) 
{ 
    values.size(); 

} 

這給予編譯錯誤

+0

矢量大小你的意思是你已經通過一個數組,並希望找到它的長度? – nos

+0

@nos是的,這是正確的 – Robert

+1

你不能,尺寸需要作爲參數傳遞。更好地使用'std :: vector '。 –

回答

5

你可以得到的指針的大小爲整數與sizeof(int*)

但是,給定一個指針值,沒有可移植的方式(使用C或C++)來獲得指向內存區域的動態運行時間大小(在堆或其他地方)。

一般建議是避免原始指針可能時:使用smart pointers(從<memory>頭)和standard C++ containers(如std::vector<vector>

所以,如果你宣佈std::vector<int> values;你可以得到與values.size();