【发布时间】:2021-12-22 00:57:41
【问题描述】:
所以我得到了这个看起来像这样的 3 维数组:
int map[100][100][100];
我想将它用作函数的返回类型,无论是作为指针还是类似的东西:
int* World::CreateCell() {
int map[100][100][100];
return map;
}
但是我找不到适合 3d 数组的返回类型,它不会让我像 2D 数组那样使用 int*。
即使这样的事情也行不通:
int a[100][100][100];
int* b = a;
VS 似乎认为数据类型是int*(100)(100),但这没有意义,也不起作用。
对于它的价值,我已经用谷歌搜索了这个并没有看到任何解决方案。谢谢
【问题讨论】:
-
你走错了路。返回指向本地数组的指针对于二维数组也是错误的。改用嵌套的
std::array或std::vector -
在 C++ 中,您通常不应该使用 C 样式的数组。没有理由这样做。如果您遵循此规则,那么大多数此类问题都会消失。 . .
-
我得到了你的兄弟,用嵌套向量对其进行排序
-
仅作记录:Demo on coliru.
标签: c++ arrays multidimensional-array return-type