我有一些二维数组,如:

int shape1[3][5] =  {1,0,0,
             1,0,0,
             1,0,0,
             1,0,0,
             1,0,0};
int shape2[3][5] =  {0,0,0,
             0,0,0,
             0,1,1,
             1,1,0,
             0,1,0};

等等。

我怎样才能制作一个指向这些的指针数组?

我尝试了以下操作,但它们不起作用(警告:从不兼容的指针类型初始化):
int *shapes[]=  {&shape1,&shape2};

int *shapes[]=  {shape1,shape2};

int **shapes[]= {&shape1,shape2};

有什么帮助吗?

最佳答案

更新 固定类型。感谢 j_radom_hacker 引起我的注意!

[编辑:实际上这里的类型不正确——请参阅 Robert S. Barnes' answer 以了解要使用的正确类型。]

先搞清楚shape1shape2的类型:

typedef int (*shape_array_t)[5];

现在使用这个:
shape_array_t sat[] = { shape1, shape2 };

关于c - 指向多维数组的指针数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/799373/

10-11 23:09