如何获得int*的大小?

Rob*_*ert -1 c++

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

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

}
Run Code Online (Sandbox Code Playgroud)

这给出了编译错误

Bas*_*tch 5

您可以获得指向整数的指针的大小sizeof(int*).

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

一般建议是尽可能避免使用原始指针:使用智能指针(来自<memory>标头)和标准C++容器(例如std::vector来自<vector>)

所以如果你声明std::vector<int> values;你可以得到矢量大小values.size();