【问题标题】:Array of pointers to an array of pointers to int指向指向 int 的指针数组的指针数组
【发布时间】:2021-02-07 04:31:33
【问题描述】:

如果我有一个指向 int 指针数组的指针数组

int **arrs = new int *[n];

并将每个元素分配给指向 int 的新指针数组

for i<n
 arrs[i] = new int[size]

现在,当我尝试获取这些数组的大小时,给我错误的值

int size = sizeof(arrs[0])/sizeof(int);

它给了我错误的价值。 那么我怎样才能得到正确的值呢?

【问题讨论】:

    标签: c++ arrays pointers sizeof


    【解决方案1】:

    你不能。 arrs[0] 是一个指针,所以 sizeof(arrs[0]) 给出了该指针的大小。

    令一些人感到惊讶的是,没有办法仅从指向该数组的指针获取数组的大小。您必须将尺寸存储在其他地方。

    在 C++ 中,最简单和最好的解决方案是使用std::vector。为什么要重新发明轮子? std::vector 拥有你想要的动态数组的一切,在这种情况下应该是首选。

    【讨论】:

      猜你喜欢
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多