【问题标题】:How do I get the size of an int*? [duplicate]如何获得 int* 的大小? [复制]
【发布时间】:2015-08-23 14:06:13
【问题描述】:

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

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

}

这会产生编译错误

【问题讨论】:

  • 你的意思是你传入了一个数组,想求它的长度?
  • @nos 是的,这是正确的
  • 不能,size需要作为参数传递。最好使用std::vector <int>

标签: c++


【解决方案1】:

您可以使用sizeof(int*) 获取指向整数的指针的大小。

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

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

因此,如果您声明 std::vector<int> values;,您可以使用 values.size(); 获得矢量大小

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-04
    • 2012-09-11
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 2018-03-07
    • 1970-01-01
    相关资源
    最近更新 更多