2017-04-20 74 views

回答

4

像这样得到:

char (*candidates_top)[2] = malloc(sizeof(*candidates_top)*n); 

你需要从内部读取新的变量candidates_top的类型出:candidates_top是一个指针(*...)到一个阵列的两个元素[2]碰巧是char类型。这就像你将创建的n整数数组与

与在candidates_top的情况下数组元素本身是数组的唯一区别。

索引仅仅是你所期望的:

candidates_top[7][0] = '4'; 
candidates_top[7][1] = '2'; 
+0

此作品:

char (*candidates_top)[2] = malloc(sizeof(*candidates_top)*n); 

您可以用typedef清理。你能解释一下好吗? – pistacchio

+1

@pistacchio是的,我只是写你的评论时说明:-) – cmaster

1

声明

char *candidates_top[2]; 

声明candidates_top是两个指针数组来char。你似乎想candidates_top是一个指向两个char一个数组,你

char (*candidates_top)[2]; 
0

如果这让你的耳朵流血:

typedef char twos[2]; 
//.... 
twos *candidates_top=malloc(sizeof(twos)*n);