使用数组在C++中访问不同长度的多个数组的正确方法

sta*_*yli 4 c++ arrays

我有几个不同长度的二维数组:

int Array_A[][2] = {{...}, {...}, {...}, ...};
int Array_B[][2] = {{...}, {...}, ...};
int Array_C[][2] = {{...}, ...};
Run Code Online (Sandbox Code Playgroud)

我需要另一个允许我访问这些数组的数组:

??? Full_Array[] = {Array_A, Array_B, Array_C};
Run Code Online (Sandbox Code Playgroud)

???我应该使用的正确类型是什么?我尝试过uint**,uint*但都不行.

如果这是不可行的,假如我是不允许更改的定义Array_A,Array_B...什么是定义一个好办法Full_Array

Bri*_*ian 7

Array_A,Array_B和,Array_C都是2 ints 的数组数组,因此它们都可以在顶层进行数组到指针的转换,成为指向2 ints 数组的指针.

所以Full_Array需要成为一个指向2 ints 数组的指针数组.声明可以写成:

int (*FullArray[])[2] = {Array_A, Array_B, Array_C};
Run Code Online (Sandbox Code Playgroud)

请注意,除非您有哨兵值,否则无法确定子阵列的长度.