[英]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.