如何创建一个动态的二维字符数组
时间: 2024-03-07 10:47:30 浏览: 45
要创建一个动态的二维字符数组,你可以使用指针和动态内存分配来实现。下面是一个示例代码:
```
int rows, cols;
char** arr;
// 获取行列数
printf("请输入行和列数:");
scanf("%d%d", &rows, &cols);
// 动态分配内存空间
arr = (char**)malloc(rows * sizeof(char*));
for (int i = 0; i < rows; i++) {
arr[i] = (char*)malloc(cols * sizeof(char));
}
// 初始化数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = '-';
}
}
// 输出数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%c ", arr[i][j]);
}
printf("\n");
}
// 释放内存空间
for (int i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
```
在上面的代码中,首先通过 `scanf` 函数获取行列数。然后使用 `malloc` 函数动态分配内存空间,其中 `arr` 是一个指向指针的指针,它指向每一行的首元素。接着使用双重循环初始化数组,并输出数组。最后使用 `free` 函数释放内存空间。
阅读全文