如何获得int *的大小?

时间:2015-08-23 14:06:13

标签: c++

我想在C ++中获得整数数组的大小。如果方法接受int *我如何获得该值的大小?

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

}

这会产生编译错误

1 个答案:

答案 0 :(得分:5)

你可以得到指向sizeof(int*)整数的指针的大小。

但是,给定一个指针值,没有可移植的方式(在C或C ++中)来获取指向的内存区域的动态-runtime-大小(在堆中或其他地方)。

一般建议是尽可能避免使用原始指针:使用smart pointers(来自<memory>标头)和standard C++ containers(例如来自<vector>的{​​{3}})< / p>

因此,如果您声明std::vector<int> values;,则可以使用values.size();

获取矢量大小