簡體   English   中英

如何檢查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!

當您完成調用new ...的那一刻,您創建的bool就存在於內存中,並且不會引發異常。

但是, if(!SomeBool)檢查bool地址是否為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)字節。 我不知道你的實際情況。 但是,應該通過重新考慮我們的設計和實現來避免這種情況。 如果您要為資源匱乏的小型設備編程,那就更重要了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM