bool**用法
时间: 2023-07-23 12:18:17 浏览: 50
`bool**` 是一个指向指针数组的指针。在 C/C++ 中,我们可以使用 `bool**` 来表示一个二维的布尔数组。例如,我们可以创建一个 `bool**` 数组,如下所示:
```c++
bool** arr = new bool*[rows];
for (int i = 0; i < rows; i++) {
arr[i] = new bool[cols];
}
```
这里,我们首先创建了一个指针数组 `arr`,它包含了 `rows` 个指向 `bool` 类型的指针。然后,我们使用循环为每个指针分配一个长度为 `cols` 的 `bool` 数组。这样,我们就创建了一个 `rows` 行、`cols` 列的二维布尔数组。需要注意的是,使用完毕后需要手动释放内存,否则会造成内存泄漏。释放内存的代码如下所示:
```c++
for (int i = 0; i < rows; i++) {
delete[] arr[i];
}
delete[] arr;
```
相关问题
[Error] cannot convert 'bool*' to 'bool**' for argument '1' to 'void Act(bool**, int)' 是什么意思?
"[Error] cannot convert 'bool*' to 'bool**' for argument '1' to 'void Act(bool**, int)'" 这个错误提示意味着在函数调用中,你传递了一个 `bool*` 类型的参数,但函数期望接受一个 `bool**` 类型的参数。
这个错误通常是由于函数声明和函数调用之间的类型不匹配导致的。在函数声明中,参数的类型被声明为 `bool**`,表示一个指向指针的指针。但在函数调用时,你传递了一个 `bool*` 类型的参数,表示一个指向 `bool` 的指针。
要解决这个错误,你可以尝试以下几点:
1. 检查函数声明和函数调用之间的参数类型是否匹配。确保参数的类型和数量在声明和调用中一致。
2. 如果你传递的是一个 `bool*` 类型的指针,但函数期望接受一个 `bool**` 类型的指针,你可能需要使用取地址运算符 `&` 来获取指针的地址。
```c++
bool* ptr = ...;
Act(&ptr, ...);
```
这样可以将 `bool*` 类型的指针转换为 `bool**` 类型的指针。
3. 如果你确定函数应该接受一个 `bool*` 类型的参数而不是 `bool**` 类型的参数,你需要修改函数声明来匹配调用。检查函数声明并将参数类型更改为 `bool*`。
如果以上方法仍然无法解决问题,请提供更多的代码片段和错误上下文,以便更详细地分析和解决问题。
error: unknown type name 'bool' bool re_bool; /* value of bool */
出现 `unknown type name 'bool'` 的错误提示意味着编译器无法找到 `bool` 类型的定义。
在 C 语言中,`bool` 类型是 C99 标准引入的布尔类型,用于表示真(true)或假(false)。然而,在一些旧的 C 编译器中,并不支持 `bool` 类型。
要解决此问题,您可以尝试以下两种方法之一:
1. 使用 `int` 类型代替 `bool` 类型:在较旧的 C 编译器中,可以使用 `int` 类型来模拟布尔类型。通常,0 表示假(false),非零值表示真(true)。
```c
int re_bool; // value of bool
```
2. 包含 `<stdbool.h>` 头文件:在支持 C99 标准的编译器中,可以包含 `<stdbool.h>` 头文件来定义 `bool` 类型。
```c
#include <stdbool.h>
bool re_bool; // value of bool
```
请根据您的编译器和需求选择适合的方法。希望这可以帮助您解决问题。如果还有其他疑问,请随时提问。