char **是什么数组
时间: 2024-11-07 17:10:06 浏览: 5
char、char*、char**数组的区别
5星 · 资源好评率100%
`char **`是一个指向字符指针的指针,也被称为双指针或二维动态字符串指针。它通常用于表示一个二维字符数组,其中每个元素都是一个字符数组的地址。在C语言和C++中,这种类型的数组可以用来存储和操作矩阵这样的数据结构,因为`**`允许你通过第一个指针访问到实际的字符数组,然后通过第二个指针遍历该数组的行。
例如:
```c++
char **matrix; // 定义一个指向二维字符数组的指针
matrix = (char **)malloc(sizeof(char *) * rows); // 分配内存给行数为rows的一维数组
// 对于每一行
for(int i=0; i<rows; i++) {
matrix[i] = (char *)malloc(sizeof(char) * cols); // 分配列为cols的内存
// ...填充字符...
}
// 使用时
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
printf("%c ", matrix[i][j]); // 访问并打印字符
}
free(matrix[i]); // 释放当前行的内存
}
free(matrix); // 释放所有行的指针空间
```
阅读全文