如何获取多维结构数组的长度?

时间:2015-08-05 20:18:22

标签: c++ c arrays multidimensional-array

我有一个在构造函数中获得三维结构数组的类。为了进一步计算,它还需要每个维度的长度。

一个简短的例子:

MyStruct*** mySt;
mySt = new MyStruct**[5]
mySt[0] = new MyStruct*[4]
mySt[0][0] = new MyStruct[3]

如何将这些值(5,4,3)重新保存到新类中,而不会明确地将它们发送到构造函数?

1 个答案:

答案 0 :(得分:3)

您无法从使用new分配的普通C ++数组中获取大小并存储为指针:没有语言结构可以让您检索数组大小。

如何处理这种情况有两种选择:

  • 在C ++中使用支持大小调整的容器 - 例如,std::vector向量向量,或
  • 在C(或C ++中,如果您更喜欢使用数组)构建一个单独的3D大小数组,并将其与mySt数组一起传递。