我有几个不同长度的二维数组:
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?
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)
请注意,除非您有哨兵值,否则无法确定子阵列的长度.