我如何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