【发布时间】:2021-08-05 07:23:37
【问题描述】:
我有一个 3D 数组 arr[x][y][z],其中在给定点 x 是一个常数,我想将 are[const][y][z] 作为 2D 指针传入。以下几行是我尝试这样做的方式:
double tmpMatrix[msize][msize][msize];<- array declaration
...
test(msize, (double*)(tmpMatrix[i]));<- function calling
...
void test(int msize, double * m) <- function which takes in 2D arrays
这是我关于堆栈溢出的第一个问题,如果您可以提供任何有用的提示,将不胜感激。任何不必要的仇恨都会被忽略。
【问题讨论】:
-
首先,它不是 3D 数组,它是数组的数组。这很重要。因此
tmpMatrix[i]将给出一个数组数组。 C 样式转换为双指针是不正确的。您应该使用正确的数组类型,甚至最好使用std::array。 -
您好,感谢您的反馈。当您说正确的数组类型时,您能否详细说明或提供任何链接来演示?
标签: c++ pointers multidimensional-array reinterpret-cast function-declaration