She*_*ker 2 c arrays malloc multidimensional-array
我想在C中动态分配(malloc)一个多维字符数组.该数组将具有以下格式:
char *array[3][2] = {
{"one","two"},
{"three","four"},
{"five","six"}
};
Run Code Online (Sandbox Code Playgroud)
在创建数组之前,我已经知道多维数组中的行数和所有字符数组的长度.我怎么会malloc这样的字符数组?
提前致谢!
这是分配char*的二维数组的一种方法.
之后,您可以分配内容,如[1] [2] ="foo"; 请注意,数组的元素初始化为(char*)0.
#include <stdio.h>
#include <stdlib.h>
char ***alloc_array(int x, int y) {
char ***a = calloc(x, sizeof(char **));
for(int i = 0; i != x; i++) {
a[i] = calloc(y, sizeof(char *));
}
return a;
}
int main() {
char ***a = alloc_array(3, 2);
a[2][1] = "foo";
printf("%s\n", a[2][1]);
}
[Charlies-MacBook-Pro:~] crb% cc xx.c
[Charlies-MacBook-Pro:~] crb% a.out
foo
Run Code Online (Sandbox Code Playgroud)