c++中有类似char[][] a = new char[n][m]的写法吗
时间: 2023-05-25 21:05:05 浏览: 47
是的,C语言中可以使用二维字符数组来表示一个字符矩阵,写法类似于 char a[n][m],其中n和m分别表示矩阵的行数和列数。例如:
```
char a[2][3] = {{'a', 'b', 'c'}, {'d', 'e', 'f'}};
```
这段代码定义了一个2行3列的字符矩阵,其中第一行为{'a', 'b', 'c'},第二行为{'d', 'e', 'f'}。
相关问题
c++.char ** a;a = (char**)malloc(sizeof(char**));
你创建了一个指向指针的指针 `a`,并使用 `malloc` 函数为其分配了内存空间。根据你的代码,你分配了 `sizeof(char**)` 字节的内存空间,但是通常情况下应该使用 `sizeof(char*)` 来分配指针所占的内存空间。另外,你也可以使用 `calloc` 函数来分配内存并初始化为零。
正确的写法应该是:
```c
char **a;
a = (char**)malloc(sizeof(char*));
```
或者使用 `calloc` 函数:
```c
char **a;
a = (char**)calloc(1, sizeof(char*));
```
记得在使用完 `a` 后,要调用 `free(a)` 来释放之前分配的内存空间,以避免内存泄漏。
char a[20]; a="good";
这段代码有错误,因为字符数组在定义时需要用一对大括号 {} 来初始化,而不能直接用赋值运算符 = 来赋值。正确的写法应该是:
```c++
char a[20] = "good";
```
这样就将字符数组 a 初始化为包含字符串 "good" 的字符数组了。