gpt4 book ai didi

c++ - C++中动态bool数组的默认值

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:51 27 4
gpt4 key购买 nike

<分区>

我需要创建一个由参数传递的未知长度的 bool 数组。所以,我有以下代码:

void foo (int size) {

bool *boolArray = new bool[size];

for (int i = 0; i < size; i++) {

if (!boolArray[i]) {

cout << boolArray[i];

}
}
}

我认为 boolean 数组正在用假值初始化...

然后,如果我在 Eclipse(在 Ubuntu 上)中运行该代码,它对我来说工作正常,该函数打印所有值,因为 !boolArray[i] 返回 true(但值不是false 值,它们是垃圾值)。如果我在 Visual Studio 中运行它,这些值也是垃圾值,但该函数不会打印任何值(因为 !boolArray[i] 返回 false)。为什么默认情况下数组值不是假值?!?为什么 !boolArray[i] 在 Visual Studio 中返回 false 但在 Eclipse 中返回 true?!?

我读了这个问题:Set default value of dynamic array ,所以如果我像下面这样更改代码,它也适用于我(在 Eclipse 和 Visual Studio 中)!但我不知道为什么。

void foo (int size) {

bool *boolArray = new bool[size]();

for (int i = 0; i < size; i++) {

if (!boolArray[i]) {

cout << boolArray[i];

}
}
}

抱歉我的英语不好!

提前致谢!

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com