2017-04-20 76 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);