我有一些二维数组,如:
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 以了解要使用的正确类型。]
先搞清楚shape1
和shape2
的类型:
typedef int (*shape_array_t)[5];
现在使用这个:
shape_array_t sat[] = { shape1, shape2 };
关于c - 指向多维数组的指针数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/799373/