我想要一个动态的二维字符数组,最多 200 个并扫描到它。 我不太确定该怎么做,我想到的只是定义动态数组(我什至不知道它是否正确):
char **arr = (char **)malloc( (len+1) * sizeof(char*) );
for (i=0; (len+1)>0; i++)
char *arr1 = (char *) malloc ( (len+1) * sizeof(char) );
但我不确定要在 (len) 中放入什么 - 假设我想要一个 51x150 的数组,具体取决于扫描的输入。 如何根据扫描到的值分配数组并打印?
输入示例:
####.#...##
##.##.#.###
##.###.#.##
#.##.##.#..
最佳答案
您可能想使用真正的二维数组而不是分段查找表。
size_t x = 51; // user input
size_t y = 150; // user input
char (*arr)[y] = malloc( sizeof(char[x][y]) );
...
arr[i][j] = something;
...
free(arr);
这比分段查找表更快更安全。这也允许您 memcpy
数据进出数组,即使该数据大于一行。
关于C - 扫描动态二维字符数组并进行分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40931336/