如何检查 C++ 中是否存在布尔值
how check if a bool exists in c++
>我使用
bool *SomeBool = new bool;
然后我如何检查它是否存在于内存中,因为(据我所知(
if (!SomeBool)
//Do stuff
如果默认情况下将布尔值设置为 false,则无法正常工作。那么我将如何检查它是否存在呢?
如果要
检查该值,则需要像这样取消引用指针: (*SomeBool)
if(*SomeBool) { // true }
或
if(!*SomeBool) { // false }
分配一些值相同:
*SomeBool = true; // value is now true!
您创建的bool
在您完成调用new ...
时存在于内存中,并且不会引发异常。
但是,if(!SomeBool)
检查bool
的地址是否为 0,如果内存分配成功,则永远不会为 0。若要改为访问bool
的值,必须先取消引用指针:
if(!(*SomeBool)) //Do stuff
我想再补充一件事。即使您的问题已得到解决。
例如:
sizeof(bool) // size = 1 byte
sizeof(bool *) // size = 4 byte or 8 byte - depending on the architecture 32-bit or 64-bit
因此,基本上您大致使用 5(4+1( 字节或 9(8+1( 字节。我不知道你的实际情况。但是,应该通过重新思考我们的设计和实现来避免这种情况。如果您要为资源稀缺的小型设备编程,这将更加重要。
相关文章:
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 如何检查QList中是否存在值
- 根据某个函数是否存在启用模板
- 地图计数确实很重要,或者只是检查是否存在
- C++中是否存在 std::conditional 的懒惰等价物?
- 无论如何,我可以确定构造函数是否存在吗?
- COM :是否可以查看是否存在对我的某个 COM 对象的进程外引用?我可以释放它吗?
- 堆分配的对象是否存在永不为空的唯一所有者?
- 扩展类中的可选 vir 函数,测试它在运行时是否存在
- 模板化检查是否存在带有参数列表的类成员函数?
- 是否存在包含负号的isdigit函数(过载)
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 检查编译时是否存在静态函数
- 向量是否存在行主要形式?
- 检查 TinyXML 中的元素是否存在
- 检测是否存在具有 C++17 的类成员
- 虚拟继承中是否存在多重继承?
- 我遇到了这个代码片段,不明白. 它递归检查 C++ 字符串中是否存在大写字符
- std::weak_ptr 和相应的 std::shared_ptr 之间是否存在数据竞争?
- 是否存在用于 C 或 C++ 中常见数学运算(例如最小值、最大值和平均值)的可导入库?