我如何malloc一個n元素數組,我知道誰是兩個字符數組?C - malloc二維數組,當一個尺寸已知
我想是這樣的,但是編譯器說,這是無效的:
char *candidates_top[2] = malloc(sizeof(char[2]) * n);
我如何malloc一個n元素數組,我知道誰是兩個字符數組?C - malloc二維數組,當一個尺寸已知
我想是這樣的,但是編譯器說,這是無效的:
char *candidates_top[2] = malloc(sizeof(char[2]) * n);
像這樣得到:
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';
聲明
char *candidates_top[2];
聲明candidates_top
是兩個指針數組來char
。你似乎想candidates_top
是一個指向兩個char
一個數組,你
char (*candidates_top)[2];
如果這讓你的耳朵流血:
typedef char twos[2];
//....
twos *candidates_top=malloc(sizeof(twos)*n);
此作品:
您可以用
typedef
清理。你能解釋一下好嗎? – pistacchio@pistacchio是的,我只是寫你的評論時說明:-) – cmaster